Volumetric data exploration using multi-point input controls

ABSTRACT

A three-dimensional data set is accessed. A two-dimensional plane is defined that intersects a space defined by the three-dimensional data set. The two-dimensional plane defines a two-dimensional data set within the three-dimensional data set and divides the three-dimensional data set into first and second subsets. A three-dimensional view based on the three-dimensional data set is rendered on such that at least a portion of the first subset of the three-dimensional data set is removed and at least a portion of the two-dimensional data set is displayed. A two-dimensional view of a first subset of the two-dimensional data set also is rendered. Controls are provided that enable visual navigation through the three-dimensional data set by engaging points on the multi-touch display device that correspond to either the three-dimensional view based on the three-dimensional data set and/or the two-dimensional view of the first subset of the two-dimensional data set.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationSer. No. 61/117,952, filed on Nov. 25, 2008 and entitled “VolumetricData Exploration Using Multi-Point Input Controls,” and U.S. ProvisionalPatent Application Ser. No. 61/236,794, filed on Aug. 25, 2009 andentitled “Volumetric Data Exploration Using Multi-Point Input Controls,”both of which are incorporated herein by reference in their entirety.

TECHNICAL FIELD

This disclosure relates to manipulating content displayed by amulti-point input computing system (e.g., a multi-touch display device).

BACKGROUND

Generally, touch-screen display devices detect input from a user basedon the presence and location of a touch on, within, or within thevicinity of the surface of the display area. Some touch-screen displaydevices require physical contact with the surface of the display area,for example with a finger, stylus, or other input mechanism, in order tointeract with the touch-screen display device. Other touch-screendisplay devices receive input by detecting the presence of a finger, astylus, or some other input mechanism hovering around, or otherwise inthe vicinity of, a particular location on the surface of the displayarea.

Multi-touch display devices are more sophisticated than traditionaltouch-screen display devices, as they detect the presence and locationof multiple touches on, within, or within the vicinity of the surface ofthe display area at the same time. Like traditional touch-screen displaydevices, some multi-touch display devices require physical contact withthe surface of the display area with one or more fingers, styluses,and/or other mechanisms in order to interact with the multi-touchdisplay device, while other multi-touch display devices receive input bydetecting the presence of one or more fingers, styluses, and/or otherinput mechanisms hovering around, or otherwise in the vicinity of, thesurface of the display area.

Multi-touch display devices belong to a more general class ofmulti-point input computing systems. Multi-point input computing systemsreceive, recognize, and act upon multiple inputs at the same time.

SUMMARY

A three-dimensional data set is accessed. A two-dimensional plane isdefined that intersects a space defined by the three-dimensional dataset. The two-dimensional plane defines a two-dimensional data set withinthe three-dimensional data set and divides the three-dimensional dataset into first and second subsets. A three-dimensional view based on thethree-dimensional data set is rendered on such that at least a portionof the first subset of the three-dimensional data set is removed and atleast a portion of the two-dimensional data set is displayed. Atwo-dimensional view of a first subset of the two-dimensional data setalso is rendered. Controls are provided that enable visual navigationthrough the three-dimensional data set by engaging points on themulti-touch display device that correspond to either thethree-dimensional view based on the three-dimensional data set and/orthe two-dimensional view of the first subset of the two-dimensional dataset.

The various aspects, implementations, and features disclosed may beimplemented using, for example, one or more of a method, an apparatus, asystem, tool, or processing device for performing a method, a program orother set of instructions, an apparatus that includes a program or a setof instructions, and a computer program stored on a tangible,computer-readable storage medium. The tangible, computer-readablestorage medium may include, for example, instructions that, whenexecuted, cause a computer to perform acts specified by theinstructions.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and the drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIGS. 1A-1E are diagrams of a multi-touch display device that illustratedifferent multi-touch controls for manipulating data displayed on themulti-touch display device by a medical imaging application.

FIGS. 2A-2C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a 3D volume and controls provided by themulti-touch display device for spherically rotating the 3D volume arounda pivot point.

FIGS. 3A-3C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand an orientation widget provided by the multi-touch display device forrotating the cutting plane through the 3D volume spherically around apivot point.

FIGS. 4A-4D are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a visualrepresentation of a 3D object, an orientation widget provided by themulti-touch display device for rotating the cutting plane through the 3Dobject spherically around a pivot point, and “snap-to” points providedby the multi-touch display device that enable the cutting plane to betransitioned immediately and automatically to certain pre-definedcutting plane orientations.

FIGS. 5A-5C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand a rotation handle provided by the multi-touch display device forrotating the cutting plane through the 3D volume spherically around apivot point.

FIGS. 6A-6C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand tilt controls provided by the multi-touch display device for tiltingthe cutting plane through the 3D volume.

FIG. 7 is a diagram that illustrates a multi-touch display devicedisplaying a cutting plane and multi-point controls provided by themulti-touch display device for cylindrically rotating the cutting planearound an arbitrary axis of the cutting plane.

FIGS. 8A-8B are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand an orientation widget provided by the multi-touch display device formanipulating the depth of the cutting plane within the 3D volume.

FIGS. 9A-9C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane and multi-touch controlsprovided by the multi-touch display device for manipulating the depth ofthe cutting plane by adjusting the scale between two points on thesurface of the cutting plane when the cutting plane is oriented toprovide a perspective view of the cutting plane.

FIGS. 10A-10C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane and multi-touch controlsprovided by the multi-touch display device for manipulating the depth ofthe cutting plane by adjusting the scale between two points on thesurface of the cutting plane when the cutting plane is oriented toprovide an oblique view of the cutting plane.

FIGS. 11A-11C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand an orientation widget provided by the multi-touch display device fortranslating the origin of the cutting plane along the cutting plane.

FIGS. 12A-12C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand a view frame control provided by the multi-touch display device fortranslating the origin of the cutting plane along the cutting plane.

FIGS. 13A-13C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying both a 3D volume through which a cutting planeis defined and a 2D view of the features of the 3D volume that are onthe surface of the cutting plane.

FIGS. 14A-14C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand an orientation widget provided by the multi-touch display device forrotating the cutting plane through the 3D volume around a fixed point inspace.

FIGS. 15A-15C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a 3D volume through which a cutting plane isdefined and controls provided by the multi-touch display device forrotating the cutting plane through the 3D volume while concurrentlymanipulating the orientation of the 3D volume.

FIG. 16A is a diagram that illustrates a multi-touch display devicedisplaying a cutting plane defined through a 3D object and multi-touchcontrols provided by the multi-touch display device for rotating thecutting plane spherically around a pivot point and concurrentlycontrolling the depth of the cutting plane within the 3D object.

FIG. 16B is a diagram that illustrates a sequence of manipulationsperformed on a cutting plane using multi-touch controls that enable thecutting plane to be rotated concurrently with controlling the depth ofthe cutting plane.

FIG. 17 is a diagram that illustrates a multi-touch display devicedisplaying a cutting plane and multi-point controls provided by themulti-touch display device for rotating the cutting plane sphericallyaround a pivot point while concurrently translating the origin of thecutting plane.

FIG. 18 is a diagram that illustrates a multi-touch display devicedisplaying a cutting plane and multi-point controls provided by themulti-touch display device for translating the origin of the cuttingplane while concurrently manipulating the depth of cutting plane.

FIG. 19 is a state diagram that illustrates the combination and/orcomposition of various different controls provided by a multi-touchdisplay device to form multi-touch controls that enable high degree offreedom manipulations.

FIGS. 20A-20F illustrate various implementations of linear slidersconfigured to modify the scale and bias parameters of acontrast/brightness control based on detected changes in slider positionand range.

DETAILED DESCRIPTION

When a 3-dimensional (3D) model is rendered on a display device, somefeatures of the 3D model may not be visible depending on the relativeorientation of the rendered 3D object. For example, the “front” of the3D model may occlude or otherwise obscure features on the “back” surfaceof the 3D model when the 3D model is rendered. Furthermore, additionalfeatures of the 3D model may be occluded or otherwise obscured by otherfeatures of the 3D model. In such situations, one or more “cuttingplanes” may be defined through the 3D model to cut away sections of therendered 3D model to reveal the occluded or otherwise obscured features.

Visually rendering a 3D volumetric data set may pose similar problems.Techniques for rendering 3D volumetric data often involve interpretingvoxel data as solid or semi-solid material. Consequently, the visualrendering of the surface of an object within a volumetric data set mayresult in internal features of the object being occluded by the surfaceof the object. In order to expose these internal features of the object,one or more cutting planes may be defined through the 3D volumetric dataset to cut away one or more sections of the 3D volumetric data set toexpose internal features of the object.

Multi-point input controls may provide particularly elegant mechanismsfor concurrently manipulating both a rendered 3D volume and one or morecutting planes defined through the visually rendered 3D volume, therebyenabling exploration of the entirety of the 3D volume (both internal andexternal) and its various features.

The ability to easily navigate through a visual rendering of a 3Dvolumetric data set may have particular applicability in the field ofmedical imaging. For example, a CT scan (computed tomography scan orcomputed axial tomography scan) of a patient's head may produce a 3Dvolumetric data set of the patient's head. However, when the 3Dvolumetric data set produced by the CT scan is rendered visually, thepatient's skull may occlude various internal features of the data set,including, for example, the patient's brain. Therefore, a cutting planethat effectively cuts away a section of the 3D volumetric data set maybe defined through the visual rendering of the patient's head to revealfeatures of the patient's brain.

When a 3D volumetric data set of a patient's head produced by, forexample, a CT scan is displayed, various multi-point input controlsdisclosed herein provide a physician or other medical professional withtools for concurrently manipulating the orientation of both the 3Dvolumetric data set (e.g., the patient's head) and a cutting planedefined through the 3D volumetric data set at the same time, therebyenabling the physician or medical professional to efficiently navigatethrough the 3D volumetric data set with multiple degrees of freedom inorder to explore various localized features of the patient's brain. Inimplementations described below, multi-point input controls have beendesigned and scaled such that the multi-point input controls are easilyactuatable by a user either with multiple fingers on one hand or withthe user's two hands, because ease of use is perceived as important tothe adoption of such multi-point input controls by users of multi-pointinput controls such as multi-touch display devices.

FIGS. 1A-1E are diagrams of a multi-touch display device that illustratedifferent multi-touch controls for manipulating data displayed on themulti-touch display device by a medical imaging application.

FIG. 1A is a diagram that illustrates a multi-touch display device 100displaying a visual rendering of a 3D volumetric data set representing apatient's head 102. As illustrated in FIG. 1A, the patient's skullobstructs the display of the interior features of the patient's head 102(e.g., the patient's brain). As discussed in greater detail below,multi-point input controls made available by the multi-touch displaydevice 100 provide multiple degrees of freedom for manipulating thevisual display of the 3D volumetric data set, thereby enabling variousfeatures on the surface of the patient's skull to be explored.

For example, a rotation control made available by the multi-touchdisplay device 100 provides two degrees of freedom by enabling sphericalrotation of the 3D volumetric data set of the patient's head 102 arounda pivot point. In some implementations such a rotation control isengaged by detecting that a user is touching (e.g., with one or morefingers, styluses, or other input mechanisms) the boundary 105 of the 3Dview of the 3D volumetric data set. When the rotation control is engagedin this manner, the multi-touch display device 100 tracks movements bythe fingers (or other input mechanisms) that have engaged the controland rotates the 3D volumetric data set in accordance with the movementsof the user's fingers (or other input mechanisms) across the surface ofthe multi-touch display device 100.

Additionally or alternatively, a scale control made available by themulti-touch display device 100 provides an additional degree of freedomby enabling the scale of the visual display of the 3D volumetric dataset to be increased or decreased and/or a translation control madeavailable by the multi-touch display device 100 provides an additionaltwo degrees of freedom by enabling the position of the 3D volumetricdata set to be moved up/down and left/right on the multi-touch displaydevice 100.

However, alone, these operations do not enable display of the internalfeatures of the patient's head 102 (e.g., the patient's brain).Therefore, in order to display the patient's brain, the multi-touchdisplay device 100 is configured to enable a cutting plane to be definedthrough the 3D volumetric data set such that a section of the 3Drendering of the volumetric data set representing the patient's head 102is cut away, thereby revealing the patient's brain.

Referring to FIG. 1B, the multi-touch display device 100 has defined acutting plane 104 through the 3D volumetric data set of the patient'shead 102. As illustrated in FIG. 1B, the cutting plane 104 cuts away asection of the 3D volumetric data set to reveal internal features of thedata set. In addition to defining the cutting plane 104 through the 3Dvolumetric data set, the multi-touch display device 100 also provides aview port 106 that provides a 2D view of a portion of the data on thesurface of the cutting plane 104. The data displayed in the view port106 corresponds to the data on the surface of the cutting plane 104 thatfalls within the region of the cutting plane 104 defined by the viewframe 108 superimposed over the cutting plane 104.

As discussed above, the multi-touch display device 100 provides a numberof controls for manipulating the orientation of the 3D volumetric dataset. In addition, the multi-touch display device 100 also providesnumerous controls for manipulating the orientation of the cutting plane104 and the data displayed in the view port 106. By exploiting theability of the multi-touch display device 100 to receive, recognize, andact upon multiple input concurrently, these controls can be combinedand/or composed to enable powerful high degree of freedom exploration ofthe 3D volumetric data set.

As an example of one control, the multi-touch display device 100provides an orientation widget 110 represented as a normal vectorextending away from the cutting plane 104. Among other features, theorientation widget 110 serves to indicate the direction of the cuttingplane 104. In addition, the orientation widget 110 includes anengageable rotation handle 112 that enables a user to rotate the cuttingplane 104 through the 3D volumetric data set around the origin 114 ofthe cutting plane 104. The shaft of the orientation widget 110 alsooperates as a depth handle that enables a user to manipulate the depthof the cutting plane 104 (i.e., the offset of the cutting plane 104along the cutting plane's normal) within the 3D volumetric data set. Inaddition, the orientation widget 110 provides a translation control thatenables a user to translate the origin 114 of the cutting plane 104along the cutting plane 104. In some implementations, the center of theview frame 108 may be fixed at the origin 104 of the cutting plane 104such that when the origin 114 of the cutting plane 104 is translated,the multi-touch display device 100 translates the view frame 108accordingly.

The view frame 108 also may function as a control that enables a user tomanipulate displayed data. For example, the multi-touch display device100 may be configured to translate the view frame 108 and/or the origin114 of the cutting plane 104 in response to detecting that a user istouching the view frame 108 with one or more fingers or other inputmechanisms and dragging the view frame 108 across the cutting plane 104.In addition, the view frame 108 may be configured to detect that a useris applying a varying amount of pressure to the view frame 108 with oneor more fingers and to tilt the cutting plane 104 in response as afunction of the pressure applied to the view frame 108. In someimplementations, the multi-touch display device 100 may sense thepressure applied to the surface of the multi-touch display device 100.In other implementations, the multi-touch display device 100 may sensethe displacement of the surface of the multi-touch display device 100caused by the application of pressure to the surface of the multi-touchdisplay device by the user's fingers 100.

As will be discussed in greater detail below, the multi-touch displaydevice 100 may provide various other controls for manipulating the 3Dvolumetric data set, the cutting plane 104, and/or the view frame 108.

As the volumetric data set, the cutting plane 104, and the view frame108 are manipulated, the data on the surface of the cutting plane 104within the region defined by the view frame 108 may change regularly.Thus, as the data on the surface of the cutting plane 104 within theregion defined by the view frame 108 changes, the multi-touch displaydevice 100 is configured to update the 2D data displayed in the viewport106 accordingly.

In addition, in some implementations, the multi-touch display device 100also may be configured to provide controls located within or around theviewport 106 for manipulating the 2D data displayed in the viewport 106.For example, the multi-touch display device 100 may provide controls forrotating, scaling, and/or translating the 2D data displayed in theviewport 106. Additionally or alternatively, the multi-touch displaydevice 100 may be configured to provide a control (e.g., a onedimensional slider) in the vicinity of the viewport 106 that enables auser to manipulate the depth of the cutting plane 104 within thevolumetric data set. For example, in the case of a one dimensionalslider, the slider may cause the depth of the cutting plane 104 to beincreased within the 3D volumetric data set in response to a usersliding the slider in one direction. In contrast, the slider may causethe depth of the cutting plane 104 to be decreased within the 3Dvolumetric data set in response to a user sliding the slider in anotherdirection.

The various different controls provided by the multi-touch displaydevice 100 for manipulating the volumetric data displayed on themulti-touch display device 100 may be combined and/or composed to formsophisticated multi-touch controls that enable a user to achieve highdegree of freedom manipulations of the displayed volumetric data. FIGS.1C-1E are a sequence of diagrams of the multi-touch display device 100that illustrate examples of multi-touch controls provided by themulti-touch display device 100 for achieving high degree of freedommanipulations of data displayed by the multi-touch display device 100.

As illustrated in the progression of the sequence of diagrams from FIG.1C to FIG. 1D, the multi-touch display device 100 may be configured toprovide multi-touch controls that enable a user to rotate the 3Dvolumetric data set while concurrently rotating the cutting plane 104through the 3D volumetric data set. Referring to FIG. 1D, when themulti-touch display device 100 detects that a user has engaged theboundary 116 of the 3D view of the volumetric data set with a firstfinger 118 and the rotation handle 112 with a second finger 120 at thesame time, the multi-touch display device 100 tracks movements by thetwo fingers 118 and 120 simultaneously. While the first finger 118remains engaged with the boundary 116 of the 3D view of the volumetricdata set and the second finger 120 remains engaged with the rotationhandle 112, the multi-touch display device 100 rotates the volumetricdata set in accordance with the path 122 traced by the first finger 118across the multi-touch display device 100 while concurrently rotatingthe orientation of the cutting plane 104 in accordance with the path 122traced by the second finger 120 across the surface of the multi-touchdisplay device 100. In addition, while the multi-touch display devicerotates the 3D volumetric data set and the cutting plane 104concurrently, the multi-touch display device 100 also updates the 2Ddata displayed in the viewport 106 in substantially real-time to reflectthe data currently on the surface of the cutting plane 104 within theregion defined by the view frame 108.

Additionally or alternatively, as illustrated in the progression of thesequence of diagrams from FIG. 1D to FIG. 1E, the multi-touch displaydevice 100 also may be configured to provide multi-touch controls thatenable a user to rotate cutting plane 104 while concurrently translatingthe origin 114 of the cutting plane 104. Referring to FIG. 1E, when themulti-touch display device 100 detects that a user has engaged therotation handle 112 with a first finger 120 and the base of theorientation widget 110 with a second finger 120 at the same time, themulti-touch display device 100 tracks movements by the two fingers 118and 120 simultaneously. While the first finger 120 remains engaged withthe rotation handle 112 and the second finger remains engaged with thebase of the orientation widget 110, the multi-touch display device 100rotates the orientation of the cutting plane 104 in accordance with thepath 126 traced by the first finger 122 across the surface of themulti-touch display device 100 while translating the origin 114 of thecutting plane 104 in accordance with the path 128 traced by the secondfinger 120 across the surface of the multi-touch display device 100. Inaddition, while the multi-touch display device rotates the cutting plane104 and concurrently translates the origin 114 of the cutting plane, themulti-touch display device 100 also updates the 2D data displayed in theviewport 106 in substantially real-time to reflect the data currently onthe surface of the cutting plane 104 within the region defined by theview frame 108.

The sophisticated multi-point controls provided by the multi-touchdisplay device for manipulating displayed data described above may beconceptualized as combinations or compositions of elemental controlsthat enable more basic manipulations of a 3D data set and/or a cuttingplane defined through the 3D data set. To enable a better understandingof the multi-point controls described above as well as additionalmulti-point controls described below, a number of the elemental,building-block controls for enabling more basic manipulations now aredescribed in isolation and, for ease of illustration, with respect tosimple 3D volumes. It will be appreciated, however, that these controlsand manipulations can be used to manipulate more complicated data setsincluding, for example, the 3D volumetric data set representing apatient's head discussed above in connection with FIGS. 1A-1E.Furthermore, while these controls have utility in isolation, the may beparticularly useful when combined and/or composed as multi-point inputcontrols.

As the following discussion of the individual controls unfolds, and aswill be discussed in greater detail below, it will be noticed that eachindividual control may be designed and/or located to facilitatemulti-touch operation through simple combinations with other controls ina manner that enables a user to intuitively navigate through a 3D dataset. For example, individual controls may be located and/or scaled so asto enable a user to manipulate multiple controls simultaneously withdifferent fingers on one hand and/or with two hands. Moreover,individual controls may be located and/or scaled such that thesimultaneous operation of multiple controls does not significantlyocclude the data set being manipulated.

The implementations described hereinafter set forth examples of varioustools and configurations that capitalize upon multi-touchfunctionalities and that enhance ease of use. Yet these tools clearlyare intended as being exemplary, since modifications of these tools andtheir look, feel, relative orientations, and interoperability arecontemplated but often omitted from this written articulation to reducethe complexity of this disclosure. As such, it is intended that thecontrols and features described in isolation are combinable andinteroperable and that the particular configurations and designsdisclosed are reconfigurable.

Engaging and Operating a Control

The various different controls described herein for manipulating datadisplayed on a multi-touch display device enable a user to manipulatedisplayed data in different ways. Nevertheless, despite the differenteffects achieved through the operation of the different controls, theremay be commonalities in engaging and operating the different controls.

Generally speaking, a multi-touch display device may determine that acontrol has been engaged in response to detecting the positioning of oneor more fingers or other input mechanisms on designated or arbitrarypoints on the multi-touch display device. In some implementations,visual indications of controls may be displayed such that they arerelatively transparent when not engaged, thereby minimizing interferencewith the data being displayed while still advertising their availabilityto a user. After a control has been engaged, a multi-touch displaydevice may provide a visual or other (e.g., audible) indicia reflectingthat the control is engaged. For example, if the multi-touch displaydevice provides a relatively transparent visual manifestation of acontrol, the multi-touch display device may increase the opacity orotherwise modify the appearance of the visual manifestation of thecontrol in response to determining that the control has been engaged.

While a control remains engaged by one or more fingers or other inputmechanisms, the multi-touch display device may track the movements ofthe one or more fingers or other input mechanisms which have engaged thecontrol. For example, the multi-touch display device may detect thepositions of the one or more fingers or other input mechanisms whichhave engaged the control periodically and the multi-touch display devicemay determine that the one or more fingers or other input mechanismshave moved in response to detecting a displacement in the positions ofthe one or more fingers or other input mechanisms between two differentsampling periods. Thereafter, in response to detecting movement by theone or more fingers or other input mechanisms between the two samplingperiods, the multi-touch display device may manipulate the datadisplayed by the multi-touch display device as a function of thedetected movement of the one or more fingers or other input mechanisms.

The multi-touch display device may track the movements of the one ormore fingers or other input mechanisms which have engaged a control andupdate the displayed data in a discrete, stepwise fashion like this aslong as the one or more fingers or other input mechanisms remain engagedwith the control. Notably, in implementations where the sampling rate ishigh enough and the multi-touch display device's refresh rate is fastenough, a user may perceive that the multi-touch display device isupdating the displayed data continuously rather than discretely inaccordance with the movements of the user's fingers or other inputmechanisms.

Rotating, Scaling, and Translating a 3D Object

FIGS. 2A-2C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a 3D volume and controls provided by themulti-touch display device for spherically rotating the volume around apivot point.

Referring to FIG. 2A, a multi-touch display device 202 is displaying a3D volume 204. In some implementations, the multi-touch display device202 may provide a rotation widget for spherically rotating the volume204 around a pivot point.

As illustrated in FIG. 2B, the multi-touch display device 202 mayprovide a rotation widget 210 represented as a vector extending awayfrom a surface of the volume 204. The multi-touch display device isconfigured such that a user may engage the rotation widget 210 bytouching the rotation widget 210 with a finger 212. In particular, themulti-touch display device 202 detects that the user has touched thedisplay in the vicinity of the rotation widget 210 and interprets thisas a selection of the rotation widget 210. While the user's finger 212remains in contact with the rotation widget 210, the multi-touch displaydevice 202 tracks movements of the user's finger 212 across themulti-touch display device and responsively rotates the volume 204spherically around a pivot point according to the path traced by theuser's finger 212 across the multi-touch display device 202. Thus, therotation widget 210 provided by the multi-touch display device 202enables a user to rotate the volume 204 spherically around a pivot pointsimply by dragging the rotation widget 210 around the multi-touchdisplay device 202 with a finger 212.

For example, as illustrated in FIG. 2C, when the user engages therotation widget 210 with a finger 212 and then drags the rotation widget210 in a downward and rightward path 220, the multi-touch display device202 detects the motion of the user's finger 212 across the path 220 androtates the volume 204 in accordance with the path 220 traced by theuser's finger 212.

Additional or alternative controls for rotating a 3D volume also may beprovided by a multi-touch display device. For example, a control may beprovided by a multi-touch display device for rotating a 3D volumespherically around a pivot point by engaging a point on the boundary ofthe display of the 3D volume with a finger and tracing a rotation pathacross the surface of the multi-touch display device and/or a controlmay be provided by a multi-touch display device for rotating a 3D volumespherically around a pivot point by engaging a point in the free spacethat surrounds the 3D display of the volume with a finger and tracing arotation path across the surface of the multi-touch display device.

Rotating a Cutting Plane Defined Through a 3D Volume

A cutting plane may be defined through a 3D data set using the standardequation for a plane, which has three degrees of freedom: a normaldirection as a spherical angle (two degrees of freedom) and a distance(or offset) along that normal (one degree of freedom). When amulti-touch display device displays a cutting plane defined through a 3Ddata set, the multi-touch display device may provide an orientationcontrol or widget to enable a user to rotate the cutting planespherically around a pivot point and/or to move the cutting plane backand forth along the cutting plane's normal. In some implementations,such an orientation widget is represented as a combination of (1) anormal vector and (2) a point on the normal vector that identifies wherethe cutting plane intersects the normal vector.

FIGS. 3A-3C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand an orientation widget provided by the multi-touch display device forrotating the cutting plane through the 3D volume spherically around apivot point.

Referring to FIG. 3A, a multi-touch display device 302 is displaying a3D volume 304. In addition, a cutting plane 306 is defined through the3D volume 304 such that a section of the 3D volume 304 is cut away andnot displayed. The orientation of the cutting plane 306 is indicated byan orientation widget 308 provided by the multi-touch display device302, which is represented as a vector that intersects the origin 308(a)of the cutting plane 306 and that is normal to the cutting plane 306. Anend 308(b) of the orientation widget 308 operates as a rotation handle.

As illustrated in FIG. 3B, the rotation handle 308(b) on the orientationwidget 308 provided by the multi-touch display device 302 enables a userto rotate the cutting plane 306 freely around a sphere 320 centered atthe origin 308(a) of the cutting plane 306. (The dashed lines used toillustrate the sphere 320 are intended to signify that, in someimplementations, the sphere 320 may not be rendered on the multi-touchdisplay device 302 but rather is understood to be defined by the origin308(a) of the cutting plane 306.) The multi-touch display device 302 isconfigured to enable a user to engage the rotation handle 308(b) bytouching the rotation handle 308(b) with a finger 322. While the user'sfinger 322 remains in contact with the rotation handle 308(b), themulti-touch display device 302 tracks movements of the user's finger 322across the multi-touch display device 302 and responsively rotates thecutting plane 306 around the sphere 320 according to the path traced bythe user's finger 322 across the surface of the sphere 320. Thus, therotation handle 308(b) enables a user to rotate the cutting plane 306freely around the sphere 320 by dragging the rotation handle 308(b)around the surface of the multi-touch display device 302 with a finger322.

For example, as illustrated in FIG. 3C, when the user engages therotation handle 308(b) with a finger 322 and then drags the rotationhandle 308(b) in a downward and leftward path 330 across the surface ofthe sphere 320, the multi-touch display device 302 detects the motion ofthe user's finger 322 across the path 330 and rotates the cutting plane306 in accordance with the path 330 traced by the user's finger 322.Notably, as illustrated in FIGS. 3A-3B, the location of the rotationhandle 308(b) on the end of a vector that is normal to the cutting plane306 enables a user to use the rotation handle 308(b) to rotate thecutting plane 306 through the 3D volume 304 without blocking the datathat is displayed in the cutting plane 306 with the user's hand.

In some implementations, pre-defined or canonical cutting planeorientations may be established for a data set. For example, in the caseof a 3D volumetric data set produced by performing a CT scan of apatient's head, axial, sagittal, and coronal orientations may bepre-defined for the cutting plane. In such implementations, themulti-touch display device may provide a set of “snap-to” points, axes,and/or view frames representing the pre-defined cutting planeorientations. When the rotation handle is activated and a second fingertouches one of the pre-defined “snap-to” points, axes, or view frames(or touches within a threshold distance of one of the pre-defined“snap-to” points, axes, or view frames), the multi-touch display devicemay immediately and automatically transition the orientation of thecutting plane to the pre-defined orientation corresponding to theselected “snap-to” point, axis, or view frame, without requiring theuser to drag the orientation handle to the selected “snap-to” point,axis, or view frame. Additionally or alternatively, a compound modelalso may define localized “snap-to points” if the origin of the cuttingplane is located within a specific feature or subassembly (e.g., alongthe central axis of a wheel).

FIGS. 4A-4D are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a visualrepresentation of a 3D object, an orientation widget provided by themulti-touch display device for rotating the cutting plane through the 3Dobject spherically around a pivot point, and “snap-to” points providedby the multi-touch display device that enable the cutting plane to betransitioned immediately and automatically to certain pre-definedcutting plane orientations.

FIG. 4A illustrates a multi-touch display device 402 displaying a 3Dobject 404. In addition, a cutting plane 406 is defined through the 3Dobject 404 such that a section of the 3D object 402 is cut away and notdisplayed. The multi-touch display device 402 provides an orientationwidget 408 that extends from the origin 408(a) of the cutting plane 406and that includes a rotation handle 408(b) that enables a user to rotatethe cutting plane 406 freely around a sphere centered at the origin408(a) of the cutting plane 406. Pre-defined cutting plane orientations,for example axial, sagittal, and coronal views, of the 3D object may beestablished.

Referring to FIG. 4B, when the multi-touch display device 402 detectsthat a user has engaged the rotation handle 408(b) by touching therotation handle 408(b) with a first finger 420, the multi-touch displaydevice 402 displays axial, sagittal, and coronal “snap-to” axes 422,424, and 426, which correspond to the predefined axial, sagittal, andcoronal views of the 3D object 404, respectively. In someimplementations, the “snap-to” axes provided by the multi-touch displaydevice 402 enable a user to automatically and immediately transition theorientation of the cutting plane 406 to one of the predefined axial,sagittal, or coronal views without dragging the rotation handle 408(b)all the way to one of the axes. Rather, the “snap-to” axes provided bythe multi-touch display device 402 enable a user to automatically andimmediately transition the orientation of the cutting plane 406 to oneof the pre-defined views merely by touching the “snap-to” axiscorresponding to the desired pre-defined view with a second finger whilecontinuing to engage the rotation handle 408(b) with the first finger420. Additionally or alternatively, the multi-touch display device 402may be configured to enable a user to automatically and immediatelytransition to one of the predefined axial, sagittal, or coronal viewswithout dragging the rotation handle 408(b) all the way to one of theaxes by touching a defined “snap-to” point along the axis correspondingto the desired pre-defined view with a second finger while continuing toengage the rotation handle 408(b) with the first finger 420.

For example, as illustrated in FIGS. 4C and 4D, when the user engagesthe rotation handle 408(b) with a finger 420 and then touches the axial“snap-to” axis 422 with another finger 430, the multi-touch displaydevice 402 automatically and immediately transitions the orientation ofthe cutting plane 406 to the axial view of the data set without the userhaving to drag the rotation handle 408(b) all the way to the axial“snap-to” axis 422. The effect is that the orientation of the cuttingplane 406 appears to “snap” to the axial view of the data set fromwhatever orientation it had been before the user touched the axial“snap-to” axis 422 with the user's second finger 430.

The “snap-to” controls for quickly transitioning the orientation of acutting plane to a desired view of a data set illustrated in FIGS. 4A-4Dare examples of multi-point controls that enable a user to performsophisticated manipulations to a data set without obstructing thedisplay of the data set. Furthermore, these “snap-to” controls arescaled so as to enable convenient operation with two hands, or, in somecases, multiple fingers of the same hand.

Various other controls for rotating a cutting plane through a 3D dataset also may be provided by a multi-touch display device in addition toor as an alternative to the rotation handle 308(b) illustrated in FIGS.3A-3B and the rotation handle 408(b) and the “snap-to” axes 422, 424,and 426 illustrated in FIGS. 4A-4D. For example, as discussed below inconnection with FIGS. 5A-5C, one or more points on a cutting plane maybe defined as rotation handles in addition to or as an alternative toproviding a rotation handle on the normal vector. Additionally oralternatively, as discussed in connection with FIGS. 6A-6C, inimplementations where a multi-touch display device is capable of sensingpressure applied to the surface of the multi-touch display device,varying amounts of pressure applied to different points on the surfaceof the cutting plane may be interpreted as tilt cues for tilting thecutting plane through an axis defined by the cutting plane's origin.

FIGS. 5A-5C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand a rotation handle provided by the multi-touch display device forrotating the cutting plane through the 3D volume spherically around apivot point.

Referring to FIG. 5A, a multi-touch display device 502 is displaying a3D volume 504. In addition, a cutting plane 506 is defined through the3D volume 504 such that a section of the 3D volume 504 is cut away andnot displayed. The orientation of the cutting plane 506 is indicated bya normal vector 508 extending from the origin 509 of the cutting plane506. In addition, the multi-touch display device 502 has superimposed aview frame 510 over the surface of the cutting plane 510. As discussedabove in connection with FIGS. 1A-1E, in some implementations, the viewframe 510 may define the region of the data set that is displayedsimultaneously in a 2D viewport on the multi-touch display device 502.In other implementations, the view frame 510 may serve simply as arotation handle for rotating the cutting plane 506 spherically aroundthe cutting plane's origin 509.

As illustrated in FIG. 5B, the view frame 510 provided by themulti-touch display device 502 enables a user to rotate the cuttingplane 506 freely around a sphere 520 centered at the origin 509 of thecutting plane 506. (The dashed lines used to illustrate the sphere 520are intended to signify that, in some implementations, the sphere 520may not be rendered on the multi-touch display device 502 but rather isunderstood to be defined by the origin 509 of the cutting plane 506).The multi-touch display device 502 is configured to enable a user toengage the view frame 510 by touching the view frame 510 with a finger522. While the user's finger 522 remains in contact with the view frame510, the multi-touch display device 502 tracks movements of the user'sfinger 522 across the multi-touch display device 502 and responsivelyrotates the cutting plane 506 around the sphere 520 according to thepath traced by the user's finger 522 across the surface of the sphere520. Thus, the view frame 510 enables a user to rotate the cutting plane506 freely around the sphere 520 by dragging the view frame 522 aroundthe surface of the multi-touch display device 502 with a finger 522.

For example, as illustrated in the progression of the sequence ofdiagrams from FIG. 5B to FIG. 5C, when the user engages the view frame510 with a finger 522 and then drags the view frame 510 in a downwardand leftward path 524 across the surface of the sphere 520, themulti-touch display device 504 detects the motion of the user's finger522 across the path 524 and rotates the cutting plane 506 in accordancewith the path 524 traced by the user's finger 522.

In some implementations, the multi-touch display device may notsuperimpose a visible view frame on the surface of a cutting plane, butthe multi-touch display device still may enable a user to rotate thecutting plane around the cutting plane's origin by engaging one or morepoints on the surface of the cutting plane with the user's fingers anddragging the cutting plane to the desired orientation. In some cases,enabling a user to rotate a cutting plane by engaging one or more pointson the surface of the cutting plane rather than a rotation handle on thenormal vector may reduce the portion of the display of the data set thatis obstructed from view while the manipulation is performed.

FIGS. 6A-6C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand tilt controls provided by the multi-touch display device for tiltingthe cutting plane through the 3D volume.

Referring to FIG. 6A, a multi-touch display device 602 is displaying a3D volume 604. In addition, a cutting plane 606 is defined through the3D volume 604 such that a section of the 3D volume 604 is cut away andnot displayed. The orientation of the cutting plane 606 is indicated bynormal vector 608 extending from the origin 609 of the cutting plane606. In addition, the multi-touch display device 602 has superimposed aview frame 610 over the surface of the cutting plane 606.

As illustrated in FIG. 6B, the view frame 610 provided by themulti-touch display device 602 enables a user to tilt the cutting plane606. In particular, the multi-touch display device 602 is configured toenable a user to engage the view frame 610 by touching the view frame610 with one or more fingers. As illustrated in FIG. 6B, the user hasengaged the view frame 610 with two fingers 622 and 624. The user thenmay cause the multi-touch display device 602 to tilt the cutting plane610 by applying a desired amount of pressure with the user's fingers 622and 624 to the surface of the multi-touch display device 602 at thecontact points on the view frame 610. As will be appreciated, thepressure applied by each finger 622 and 624 may be substantially thesame or the pressure applied by each finger may be substantiallydifferent. In any event, the multi-touch display device 602 senses thepressure applied by the user's fingers 622 and 624 to the contact pointson the view frame 610 and tilts the cutting plane 606 about an axis as afunction of the pressure applied by the user's fingers 622 and 624 tothe contact points on the view frame 610. In some implementations, themulti-touch display device 602 may be configured to sense pressureapplied to the surface of the multi-touch display device 602. In otherimplementations, the multi-touch display device 602 may detect thedisplacement of the surface of the multi-touch display device 602 as asurrogate for sensing pressure.

For example, as illustrated by the progression of the sequence ofdiagrams from FIG. 6B to FIG. 6C, when the user engages the view frame610 with two fingers 622 and 624 and applies pressure to the view frame610 with the two fingers 622 and 624, the multi-touch display device 602senses the amount of pressure applied by the user's two fingers 622 and624 and tilts the orientation of the cutting plane 606 around an axisdefined through the cutting plane's origin 609 as a function of thesensed amount of pressure applied by the user's two fingers 622 and 624.

In some implementations, a multi-touch display device may notsuperimpose a visible view frame on the surface of a cutting plane, butthe multi-touch display device still may enable a user to tilt thecutting plane about an axis defined through the cutting plane's originby engaging one or more points on the surface of the cutting plane withthe user's fingers and applying pressure to the engaged points.Furthermore, implementations may allow the user to engage any number ofpoints on the surface of the cutting plane with the user's fingers androtate the cutting plane by applying pressure to the engaged points onthe cutting plane.

In some applications, it may be desirable to limit the rotation of acutting plane to cylindrical rotation around an arbitrary axis on thecutting plane instead of allowing spherical rotation around the cuttingplane's origin. For example, such constrained cylindrical rotation maybe useful for rotating a cutting plane around axes of radially symmetricfeatures of a data set, especially when those axes are not aligned in aprincipal direction.

FIG. 7 is a diagram that illustrates a multi-touch display device 702displaying a cutting plane 704 and multi-point controls provided by themulti-touch display device 702 for cylindrically rotating the cuttingplane 704 around an arbitrary axis of the cutting plane 704. For ease ofillustration, the cutting plane 704 is illustrated in isolation.Nevertheless, it will be appreciated that the cutting plane 704 may bedefined through a 3D data set and that the multi-touch controls providedby the multi-touch display device 702 for cylindrically rotating thecutting plane 704 around an arbitrary axis of the cutting plane 702 maybe used to rotate the cutting plane 704 through a 3D data set.

As illustrated in FIG. 7, the multi-touch display device 702 provides anorientation widget 706 for manipulating the orientation of the cuttingplane 704. The orientation widget 706 is represented as a vector thatintersects the cutting plane 704 at the cutting plane's origin 706(a)and that is normal to the cutting plane 704. An end 706(b) of theorientation widget 706 operates as a rotation handle that rotates thecutting plane 704 spherically around the origin 706(a) of the cuttingplane 704 in response to actuation by a user.

The multi-touch display device 702 allows a user to define an arbitraryaxis around which to rotate the cutting plane 704 cylindrically bytouching a point on the cutting plane 704 with a finger 710. In responseto detecting that the user's finger 710 is touching the point 708, themulti-touch display device 702 defines a rotation axis 712 that extendsthrough both the origin 706(a) and the contact point 708 defined by theuser's finger 710. While the user continues to engage the contact point708 with one finger 710, the multi-touch display device 702 rotates thecutting plane 704 cylindrically around the rotation axis 712 defined bythe origin 706(a) and the contact point 708 in response to the userengaging and dragging the rotation handle 706(b) with a second finger714.

Manipulating “Depth” of a Cutting Plane Defined Through a 3D Object

As described above, a cutting plane defined through a 3D data set usingthe standard equation for a plane has three degrees of freedom: a normaldirection as a spherical angle (two degrees of freedom) and a distance(or offset) along that normal (1 degree of freedom). Various controlsfor manipulating the spherical angle of the normal of a cutting plane ona multi-touch display device were presented above. The below discussionpresents various controls provided by a multi-touch display device formanipulating the distance (or offset) of the cutting plane along thecutting plane's normal. For ease of discussion, the distance (or offset)of the cutting plane along the cutting plane's normal may be referred toas the “depth” of the cutting plane. The ability to manipulate the depthof a cutting plane within a 3D data set enables inspection of differentslices of the data set at various different depths.

In some implementations, a multi-touch display device incorporates acontrol for manipulating the depth of a cutting plane within a 3D dataset within an orientation widget (e.g., the orientation widget 308illustrated in FIGS. 3A-3C and/or the orientation widget 408 illustratedin FIGS. 4A-4C) that also enables a user to rotate the cutting planespherically about a pivot point.

FIGS. 8A-8B are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand an orientation widget provided by the multi-touch display device formanipulating the depth of the cutting plane within the 3D volume.

Referring to FIG. 8A, a multi-touch display device 802 is displaying a3D volume 804. In addition, a cutting plane 806 is defined through the3D volume 804 such that a section of the 3D volume 804 is cut away andnot displayed. The multi-touch display device 802 indicates theorientation of the cutting plane 806 by providing an orientation widget808, which is represented as a vector that intersects the origin 808(a)of the cutting plane 806 and that is normal to the cutting plane 806.The orientation widget 808 provided by the multi-touch display device802 enables a user to manipulate the depth of the cutting plane 806 byestablishing a control contact on the orientation widget 808 by touchingthe shaft of the orientation widget 808 with a finger 810 and slidingthe finger 810 back and forth along the shaft of the orientation widget808. In particular, the user can increase the depth of the cutting plane806 within the 3D volume 804 by sliding the user's finger 810 into thevisual display of the 3D volume 804 along the shaft of the orientationwidget 808 and the user can decrease the depth of the cutting plane 806within the 3D volume 804 by sliding the user's finger 810 out of thevisual display of the 3D volume 804 along the shaft of the orientationwidget 808. In some implementations, the multi-touch display device 802may be configured to manipulate the depth of the cutting plane 806 as afunction of the distance traversed by a user's finger 810 along theshaft of the orientation widget 808. In the event that the user contactsthe shaft of the orientation widget 808 with more than one finger, themulti-touch display device 802 may calculate the average of thedistances traveled by the multiple fingers along the shaft andmanipulate the depth of the cutting plane 806 as a function of thecalculated average.

As illustrated by the progression of the sequence of diagrams from FIG.8A to FIG. 8B, when the user touches the shaft of the orientation widget808 with a finger 810 and then slides the user's finger 810 into the 3Dvolume 804 along the shaft of the orientation widget 808, themulti-touch display device 802 detects the movement of the finger 810along the shaft of the orientation widget 808 and increases the depth ofthe cutting plane to reveal a slice of the data set located deeperwithin the 3D volume 804 than the slice of the data set previouslydisplayed.

In some implementations, an orientation widget may be provided by amulti-touch display device that enables a user to manipulate the depthof a cutting plane by touching the orientation widget anywhere along theshaft of the orientation widget. In alternative implementations, a depthhandle may be pre-defined at a certain point along the shaft of theorientation widget such that the depth of the cutting plane ismanipulated by touching and sliding the pre-defined depth handle.

Various other controls for manipulating the depth of a cutting planewithin a 3D data set also may be provided by a multi-touch displaydevice in addition to or as an alternative to the orientation widget 808described above in connection with FIGS. 8A-8B. In some implementations,a control may be provided by a multi-touch display device that enables auser to manipulate the depth of a cutting plane within a 3D data set bytouching two different points on the surface of the cutting plane andthen adjusting the scale between the two different contact points.

For example, when a user contacts two different points on the surface ofa cutting plane and pinches (i.e., contracts) the two contact pointstogether, the multi-touch display device may detect the movement of theuser's fingers and increase the depth of the cutting plane in the 3Ddata set in response. That is to say, the cutting plane may be moved inthe negative direction along the cutting plane's normal. In contrast,when a user contacts two different points on the surface of a cuttingplane and expands the distance between the two contact points, themulti-touch display device may detect the movement of the user's fingersand decrease the depth of the cutting plane in the 3D data set inresponse. That is to say, the cutting plane may be moved in the positivedirection along the cutting plane's normal. In some implementations, themulti-touch display device also may control the velocity with which thedepth of the cutting plane is manipulated as a function of the distancebetween contact points defined by two fingers. These manipulations forcontrolling the depth of the cutting plane may minimize interferencewith displayed data while the depth of the cutting plane is controlled.

FIGS. 9A-9C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane and multi-touch controlsprovided by the multi-touch display device for manipulating the depth ofthe cutting plane by adjusting the scale between two points on thesurface of the cutting plane when the cutting plane is oriented toprovide a perspective view of the cutting plane. For ease ofillustration, the cutting plane is illustrated in isolation.Nevertheless, it will be appreciated that the cutting plane may bedefined through a 3D data set and that the described multi-pointcontrols for manipulating the depth of the cutting plane may be used tomanipulate the depth of the cutting plane within the 3D data set.

Referring to FIG. 9A, a multi-touch display device 902 is displaying acutting plane 904 with an orientation that provides a perspective viewof the cutting plane. As illustrated by the progression of the sequenceof diagrams from FIG. 9A to FIG. 9B, the multi-touch display device 902provides multi-touch controls that enable a user to increase the depthof the cutting plane 904 (i.e., push the cutting plane further into themulti-touch display device 902) by touching two points on the surface ofthe cutting plane 904 with two different fingers 906 and 908 and thencontracting the two contact points together. Referring to FIG. 9B, inresponse to detecting that the user touched two points on the surface ofthe cutting plane 904 and then contracted the two points, themulti-touch display device 902 increased the depth of the cutting plane904. In contrast, as illustrated by the progression of the sequence ofdiagrams from FIG. 9A to FIG. 9C, the multi-touch display device 902provides multi-touch controls that enable a user to decrease the depthof the cutting plane 902 (i.e., draw the cutting plane closer to theuser) by touching two points on the surface of the cutting plane 902with two different fingers 906 and 908 and then expanding the distancebetween the two contact points. Referring to FIG. 9C, in response todetecting that the user touched two points on the surface of the cuttingplane 904 and then expanded the two points, the multi-touch displaydevice 902 decreased the depth of the cutting plane 904. In someimplementations, the multi-touch display device 902 may manipulate thedepth of the cutting plane 904 such that the boundaries of a view frameof a fixed size with respect to the cutting plane 904 remains beneaththe two contact points defined by the position of the user's fingers 906and 908 as the user expands and contracts the distance between the twofingers 906 and 908.

The ability to manipulate the depth of a cutting plane by adjusting thescale between two points on the surface of the cutting plane is notlimited to when the cutting plane is oriented to provide a perspectiveview of the cutting plane. Rather, the depth of a cutting plane may bemanipulated by adjusting the scale between two points on the surface ofthe cutting plane for both perspective and orthographic projections.

For example, FIGS. 10A-10C are a sequence of diagrams that illustrate amulti-touch display device displaying a cutting plane and multi-touchcontrols provided by the multi-touch display device for manipulating thedepth of the cutting plane by adjusting the scale between two points onthe surface of the cutting plane when the cutting plane is oriented toprovide an oblique view of the cutting plane. As with FIGS. 9A-9C, forease of illustration, the cutting plane is illustrated in isolation.Nevertheless, it will be appreciated that the cutting plane may bedefined through a 3D data set and that the described multi-pointcontrols for manipulating the depth of the cutting plane may be used tomanipulate the depth of the cutting plane within the 3D data set.

Referring to FIG. 10A, a multi-touch display device 1002 is displaying acutting plane 1004 with an orientation that provides an oblique view ofthe cutting plane 1004. As illustrated by the progression of thesequence of diagrams from FIG. 10A to FIG. 10B, the multi-touch displaydevice 1002 provides multi-touch controls that enable a user to increasethe depth of the cutting plane 1004 (i.e., move the cutting plane 1004in the negative direction along the cutting plane's normal) by touchingtwo points on the surface of the cutting plane 1004 with two differentfingers 1006 and 1008 and then contracting the two contact pointstogether. Referring to FIG. 10B, in response to detecting that the usertouched two points on the surface of the cutting plane 1004 and thencontracted the two points, the multi-touch display device 1002 increasedthe depth of the cutting plane 1004 (e.g., as a function of thecontracted distance). In contrast, as illustrated by the progression ofthe sequence of diagrams from FIG. 10A to FIG. 10C, the multi-touchdisplay device 1002 also provides multi-touch controls that enable auser to decrease the depth of the cutting plane 1004 (i.e., move thecutting plane 1004 in the positive direction along the cutting plane'snormal) by touching two points on the surface of the cutting plane 1004with two different fingers 1006 and 1008 and then expanding the distancebetween the two contact points. Referring to FIG. 10C, in response todetecting that the user touched two points on the surface of the cuttingplane 1004 and then expanded the two points, the multi-touch displaydevice 1002 decreased the depth of the cutting plane 1004 (e.g., as afunction of the expanded distance).

Translating the Origin of a Cutting Plane Defined Through a 3D Volume

Two additional degrees of freedom for manipulating the orientation of acutting plane can be achieved by translating the origin of the cuttingplane. In some implementations, a multi-touch display device may providea control for translating the origin of a cutting plane by touching theorigin with a finger and sliding the origin to the desired location onthe cutting plane. Additionally or alternatively, a multi-touch displaydevice may superimpose a view frame over the surface of the cuttingplane such that the origin of the cutting plane is fixed at the centerof the view frame and enable a user to drag the view frame across thecutting plane with one or more fingers. Since the origin of the cuttingplane is fixed at the center of the view frame, the multi-touch displaydevice will translate the origin of the cutting plane across the cuttingplane as the user drags the view frame across the cutting plane.

FIGS. 11A-11C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand an orientation widget provided by the multi-touch display device fortranslating the origin of the cutting plane along the cutting plane.

Referring to FIG. 11A, a multi-touch display device 1102 is displaying a3D volume. In addition, a cutting plane 1106 is defined through the 3Dvolume such that a section of the 3D volume 1104 is cut away and notdisplayed. The multi-touch display device indicates the orientation ofthe cutting plane 1106 by providing an orientation widget 1108, which isrepresented as a vector that intersects the origin 1108(a) of thecutting plane 1106 and that is normal to the cutting plane 1106. An end1108(b) of the orientation widget 1108 operates as a rotation handlethat enables a user to rotate the cutting plane 1106 about the origin1108(a). The orientation widget 1108 provided by the multi-touch displaydevice 1102 enables a user to translate the origin 1108(a) of thecutting plane by engaging the orientation widget 1108 at the origin1108(a) with a finger 1110 and dragging the origin 1108(a) to a desiredlocation on the cutting plane 1106.

As illustrated in the progression of the sequence of diagrams from FIGS.11A-11C, when the multi-touch display device 1102 detects that the userhas engaged the orientation widget 1108 at the origin 1108(a) and hasdragged the base of the orientation widget to a new location 1108(a)′ onthe cutting plane 1106, the multi-touch display device 1102 translatesthe origin 1108(a) of the cutting plane 1106 to the new location1108(a)′ on the cutting plane 1106.

In addition to or as an alternative to enabling a user to translate theorigin of a cutting plane using the orientation widget 1108 illustratedin FIGS. 11A-11C, a multi-touch display device may provide a view framecontrol superimposed over a cutting plane that enables a user totranslate the origin of the cutting plane by dragging the view framecontrol around the surface of the cutting plane.

FIGS. 12A-12C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a cutting plane defined through a 3D volumeand a view frame control provided by the multi-touch display device fortranslating the origin of the cutting plane along the cutting plane.

Referring to FIG. 12A, a multi-touch display device 1202 is displaying a3D volume 1204. In addition, a cutting plane 1206 is defined through the3D volume 1204 such that a section of the 3D volume 1204 is cut away andnot displayed. The multi-touch display device 1202 indicates theorientation of the cutting plane 1206 by providing a normal vector 1208extending from the origin 1209 of the cutting plane 1206. In addition,the multi-touch display device 1202 has superimposed a view frame 1210over the surface of the cutting plane 1206. The view frame 1210 isconfigured such that the origin 1209 of the cutting plane 1206 remainsfixed at the center of the view frame 1210. Thus, in response todetecting that a user is moving the view frame 1210 along the surface ofthe cutting plane 1206, the multi-touch display device 1202 translatesthe origin 1209 of the cutting plane along the cutting plane 1206.

As discussed above in connection with FIGS. 1A-1E, in someimplementations, the view frame 1210 may define a region of the 3D dataset that is displayed simultaneously in a 2D viewport on the multi-touchdisplay device 1202. In such implementations, the origin 1209 of thecutting plane may represent the center of the region of the 3D data thatis displayed in the 2D viewport. Thus, when the view frame 1210 is movedand the origin 1209 of the cutting plane is translated, the multi-touchdisplay device 1202 may update the data displayed in the 2D viewportaccordingly. In other implementations, the view frame 1210 may servesimply as a control for translating the origin 1209 of the cutting plane1210.

As illustrated in the progression of the sequence of diagrams from FIGS.12A-12C, the view frame 1210 enables a user to translate the origin 1209of the cutting plane 1204 along the cutting plane 1204. A user mayengage the view frame 1210 by touching the view frame 1210 with one ormore fingers 1212. While the user's fingers 1212 remain in contact withthe view frame 1210, the multi-touch display device 1202 tracksmovements of the user's fingers 1212 along the cutting plane 1206 andresponsively translates the view frame 1210, along with the origin 1209of the cutting plane 1206, along the cutting plane 1206. Thus, the viewframe 1210 enables a user to translate the origin 1209 from one locationto a new location 1209′ by dragging the view frame 1210 around themulti-touch display device 1202 with the user's finger 1212.

In some implementations, a multi-touch display device may notsuperimpose a visible view frame on the surface of a cutting plane, butthe multi-touch display device still may enable a user to translate theorigin of the cutting plane around the cutting plane by engaging one ormore points on the surface of the cutting plane with the user's fingersand dragging the contact points along the surface of the cutting plane.In some cases, enabling a user to translate the origin of the cuttingplane by engaging one or more points on a view frame superimposed overthe cutting plane or by engaging one or more points on the surface ofthe cutting plane rather than by engaging the origin of the cuttingplane itself may reduce the portion of the display of the data set thatis obstructed from view while the manipulation is performed.

2D Scaling, Rotation, and Translation of Data on the Surface of aCutting Plane Defined Through a 3D Object

As described above in connection with FIGS. 1A-1E, in someimplementations, a multi-touch display device may be configured suchthat when a cutting plane is defined within a 3D data set, a 2D view ofthe data (or a portion of the data) on the surface of the cutting planeis rendered in a viewport concurrently with the display of the visualrepresentation of the 3D data set and the cutting plane. In suchimplementations, the multi-touch display device may provide controls formanipulating the 2D view of the data in association with both the 3Ddisplay of the data set and the 2D view of the data on the surface ofthe cutting plane. In addition, the multi-touch display device may beconfigured to enable controls provided in connection with the 3D view ofthe data to be operated concurrently with controls provided inconnection with the 2D view of the data.

FIGS. 13A-13C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying both a 3D object through which a cutting planeis defined and a 2D view of the features of the 3D object that are onthe surface of the cutting plane.

As illustrated in FIG. 13A, a multi-touch display device 1302 isdisplaying a 3D volume 1304 through which a cutting plane 1306 isdefined. In addition, the multi-touch display device 1302 is displayinga viewport 1308 which presents a 2D display of the features of the 3Dvolume 1304 that are on the surface of the cutting plane 1306. Asillustrated in FIG. 13A, a view frame 1310 is superimposed over thesurface of the cutting plane 1306. The view frame 1310 is centered atthe origin 1312 of the cutting plane 1306 and defines the region of thesurface of the cutting plane 1306 that is displayed in the viewport1308.

The multi-touch display device 1302 provides controls that enable the 2Ddata displayed in the viewport to be scaled, rotated, and/or translatedin association with both the 3D object 1304 and cutting plane 1306defined through the 3D volume 1304 as well as the 2D viewport 1308. Forexample, the multi-touch display device 1302 provides controls thatenable the 2D data displayed in the viewport 1308 to be scaled byengaging a corner of the view frame 1310 with one or more fingers anddragging the engaged corner toward and away from the origin 1312 of thecutting plane 1306. Similarly, the multi-touch display device provides acontrol for rotating the 2D data displayed in the viewport 1308 byengaging an edge of the view frame 1310 with one or more fingers androtating the view frame 1310 around the origin 1312 of the cutting planeand/or the multi-touch display device provides a control for translatingthe 2D data displayed in the viewport 1308 by engaging the view frame1310 with one or more fingers and translating the view frame 1310 acrossthe surface of the cutting plane 1306. It will be appreciated that themulti-touch display device 1302 is configured to simultaneously rotate,translate, and/or scale the view frame 1310 in the 3D context inresponse to input received from multiple fingers at the same time.

Additionally or alternatively, the multi-touch display device 1302provides a control that enables the 2D data displayed in the viewport1308 to be scaled by engaging two contact points within the viewport1308 with two different fingers and contracting and expanding thedistance between the two contact points. Similarly, the multi-touchdisplay device 1302 provides a control for rotating the 2D datadisplayed in the viewport 1308 by engaging two or more contact pointswithin the viewport 1308 with two different fingers and rotating thecontact points around the origin of the viewport 1308 and/or themulti-touch display device 1302 provides a control for translating the2D data displayed in the viewport 1308 by engaging one or more contactpoints within the viewport 1308 with one or more fingers and translatingthe contact points through the viewport 1308. It will be appreciatedthat the multi-touch display device 1302 reflects operations performedby controls in the 2D viewport 1308 in the 3D display, even when othercontrols provided by the multi-touch display device 1302 are active inthe 3D context (e.g. when the view direction control and/or the depthmanipulation control are active), and may be engaged in composition withother 3D control modes when the view frame 1310 is manipulated withinthe 3D view.

FIG. 13 is a diagram that illustrates controls that are provided by themulti-touch display device 1302 in association with the 3D volume 1304and the cutting plane 1306 that enable a user to scale the 2D datadisplayed in the viewport 1308. Specifically, FIG. 13B illustrates thatwhen a user engages one or more edges of the view frame 1310 with one ormore fingers 1314, the multi-touch display device 1302 tracks movementsof the one or more fingers 1314 and zooms in on the data presented inthe viewport 1308 when the one or more fingers shrink the size of theview frame 1310 by dragging the one or more edges of the view frame 1310in toward the origin 1312 of the cutting plane 1306. Although notillustrated, when a user engages one or more edges of the view frame1310 with one or more fingers 1314 and expands the size of the viewframe 1310 by dragging the one or more edges of the view frame 1310 awayfrom the origin of the cutting plane 1306, the multi-touch displaydevice 1302 zooms out on the 2D data displayed in the viewport 1308.

FIG. 13C is a diagram that illustrates controls that are provided by themulti-touch display device 1302 in association with the viewport 1308that enable a user to scale the 2D data displayed in the viewport 1308.Specifically, FIG. 13C illustrates that when a user engages two contactpoints in the viewport 1308 with two different fingers 1316 and 1318,the multi-touch display device 1302 tracks movements by the two fingers1316 and 1318 and zooms in on the data presented in the viewport 1308when the two fingers both are dragged outward (e.g., in radialdirections from the origin) of the viewport 1308 and/or when thedistance between the two fingers 1316 and 1318 is increased. Similarly,although not illustrated, when a user engages two contact points in theviewport 1308 with two fingers 1316 and 1318 and drags both fingersinward (e.g., in radial directions toward the origin) of the viewport1308 and/or when the distance between the two fingers 1316 and 1318 isdecreased, the multi-touch display device 1302 zooms out on the 2D datadisplayed in the viewport 1308. In addition to zooming in and out on the2D data displayed in the viewport 1308, as a user manipulates thescaling controls provided in association with the viewport 1308, themulti-touch display device 1302 also modifies the view frame 1310 inreal-time such that the view frame 1310 identifies the region of thesurface of the cutting plane 1306 currently displayed in the viewport1308.

Rotating a Cutting Plane Defined Through a 3D Object Around a FixedPoint

Controls for rotating a cutting plane defined through a 3D volume in asphere centered at a point on the cutting plane have been describedabove, for example, in connection with FIGS. 3A-3C. As an alternative,however, in some implementations, a multi-touch display device providesa control for rotating a cutting plane defined through a 3D volumearound a pivot point that is fixed at a point in space that may removedfrom the cutting plane (e.g., the pivot point may be located at thecenter of the 3D volume) instead of at the origin of the cutting plane.

By way of example, FIGS. 14A-14C are a sequence of diagrams thatillustrate a multi-touch display device displaying a cutting planedefined through a 3D volume and an orientation widget provided by themulti-touch display device for rotating the cutting plane through the 3Dvolume around a fixed point in space that is removed from the cuttingplane.

Referring to FIG. 14A, a multi-touch display device 1402 is displaying a3D volume 1404. In addition, a cutting plane 1406 is defined through the3D volume 1404 such that a section of the 3D volume 1404 is cut away andnot displayed. The orientation of the cutting plane 1406 is indicated byan orientation widget 1408 provided by the multi-touch display device1402. The orientation widget 1408 is represented as a vector that isnormal to the cutting plane 1406 and that falls along a sphericalrotation axis defined by a fixed point 1410 in space (e.g., the centerof the 3D volume). An end 1412 of the orientation widget 1408 operatesas a rotation handle.

As illustrated in FIG. 14B, the rotation handle 1412 on the orientationwidget 1408 provided by the multi-touch display device 1402 isconfigured to be rotatable, and when rotated (e.g., by virtue of usermanipulation of the orientation widget 1408) causes a rotation of thecutting plane 1406 freely around the surface of a sphere centered at thefixed point 1410 in space. The multi-touch display device 1402 isconfigured to enable a user to engage the rotation handle 1412 bytouching the rotation handle 1412 with a finger. While the user's fingerremains in contact with the rotation handle 1412, the multi-touchdisplay device 1402 tracks movements of the user's finger across themulti-touch display device 1402 and responsively rotates the cuttingplane 1406 around the sphere centered at the fixed point 1410 in spaceaccording to the path 1414 traced by the user's finger across thesurface of the multi-touch display device 1402. In the event that theuser's finger is moved to a screen position that is inconsistent withthe cutting plane's position on the sphere, the multi-touch displaydevice 1402 may cease the rotation of the cutting plane 1406 inaccordance with the movement of the user's finger. The effect of theoperation of the rotation handle 1412 is to rotate the cutting plane1406 about a fixed point 1410, as if the cutting plane 1406 is fixed tothe fixed point 1410 by a radial axis extending between fixed point 1410and the point at which the radial axis intersects cutting plane 1406.This is in contrast to the operation of the rotation control 308(b)described above in connection with FIGS. 3A-3C, which rotates thecutting plane spherically around the origin of the cutting plane.

In addition to enabling a user to rotate the cutting plane 1406 freelyaround the surface of a sphere centered at the fixed point 1410 inspace, the orientation widget 1408 provided by the multi-touch displaydevice 1402 also may enable a user to manipulate the depth of thecutting plane 1406. For example, as illustrated in FIG. 14C, theorientation widget 1408 may be configured to detect that a user hasengaged the shaft of the orientation widget 1408 with a finger and tomanipulate the depth of the cutting plane 1406 in response to detectingthat the user is moving the finger back and forth along the shaft of theorientation widget 1408. In implementations such as this, where thepivot point is located at a fixed point in space 1410, manipulation ofthe depth of the cutting plane 1406 by the orientation widget 1408serves to slide the cutting plane 1406 along the axis defined by thefixed point 1410 in space.

Multi-Point Controls for High Degree of Freedom Manipulations

A multi-point input computing system (e.g., a multi-touch displaydevice) receives multiple control inputs at the same time. Takingadvantage of such multi-point input functionality, the controlsdescribed above are capable of being combined and/or composed. In fact,as described in greater detail below, the controls described above arestructured such that compound controls can be initiated from any oftheir sub-operations. As a result, a multi-point input computing systemequipped with the individual controls described above enables a user toengage multiple controls concurrently to achieve high degree of freedommanipulations of the data displayed by the multi-point input computingsystem. Furthermore, the control elements for implementing the controlsdescribed above may be located and sized so as to enable operation bymultiple fingers of the same hand and/or by two hands of the same user,thereby providing for relatively easy operation when deployed within amulti-touch display device.

When a multi-point input computing system equipped with the controlsdescribed above receives multiple control inputs for manipulatingdisplayed data at the same time, the multi-point input computing systemprocesses the received control inputs at substantially the same time andupdates the displayed data in accordance with the received controlinputs in substantially real-time. Consequently, to a viewer of thedisplayed data, it appears that the multi-point input computing systemperforms the high degree of freedom manipulations of the displayed datasubstantially in unison with receiving the multi-point input. In orderto avoid unwanted side effects that otherwise might arise as aconsequence of multiple control operations being performed concurrently,individual control elements may broadcast local changes to other activecontrol elements when multiple control operations are performedconcurrently.

Various examples of combinations and/or compositions of the controlsdiscussed above that provide for high degree of freedom manipulation ofdata displayed by a multi-point display device are now discussed below.

Concurrent Rotation of a 3D Volume and a Cutting Plane Defined Throughthe 3D Volume

The ability to operate a control for spherically rotating a cuttingplane defined through a 3D object concurrently with a control formanipulating the orientation of the 3D object is one example of amulti-point control provided by a multi-point input computing systemthat enables a user to achieve high degree of freedom manipulations ofdisplayed data.

FIGS. 15A-15C are a sequence of diagrams that illustrate a multi-touchdisplay device displaying a 3D volume through which a cutting plane isdefined and controls provided by the multi-touch display device forrotating the cutting plane through the 3D volume while concurrentlymanipulating the orientation of the 3D volume.

Referring to FIG. 15A, a multi-touch display device 1502 is displaying a3D volume 1504 through which a cutting plane 1506 is defined such that aportion of the 3D volume 1504 is not displayed. The multi-touch displaydevice 1502 provides an orientation widget 1508—represented as a normalvector that intersects the origin 1508(a) of the cutting plane 1506—thatindicates the direction of the cutting plane 1506 and that enables auser to rotate the cutting plane 1506 spherically about the origin1508(a) of the cutting plane 1506. Specifically, the orientation widget1508 provides a rotation handle 1508(b) that enables a user to rotatethe cutting plane 1506 spherically around the origin 1508(a) of thecutting plane 1506 by touching the rotation handle 1508(b) with a finger1510 and dragging the rotation handle 1508(b) along the surface of themulti-touch device 1502.

For example, as illustrated in the progression of the sequence of thediagrams from FIG. 15A to FIG. 15B, when a user engages the rotationhandle 1508(b) with a finger 1510 and drags the rotation handle 1508(b)across the surface of the multi-touch display device 1502, themulti-touch display device 1502 tracks the movement of the finger 1510across the multi-touch display device 1502 and responsively rotates thecutting plane 1506 in accordance with the path traversed by the finger1510 across the multi-touch display device 1510.

The multi-touch display device 1502 also provides a control that enablesa user to manipulate the orientation of the 3D volume 1504 whileconcurrently rotating the cutting plane 1506. Specifically, themulti-touch display device 1502 is configured such that when a usertouches the multi-touch display device 1502 with a finger 1512 on theboundary of the 3D volume 1504 or anywhere in the free space surroundingthe 3D volume 1504, the multi-touch display device 1502 will trackmovements of the finger 1512 and responsively rotate the 3D volume inaccordance with the movement of the finger 1512 across the surface ofthe multi-touch display device 1502.

When a user engages the rotation handle 1508(b) of the orientationwidget 1508 with a first finger 1510 at the same time as touching aboundary of the 3D volume 1504 or the free space surrounding the 3Dvolume 1504, the multi-touch display device 1502 tracks movements by thefirst finger 1510 and the second finger 1512 simultaneously andmanipulates the cutting plane 1506 and the 3D volume 1504 accordingly.For example, as illustrated in the progression of the sequence ofdiagrams from FIG. 15B to FIG. 15C, while the first finger 1510 remainsengaged with the rotation handle 1508(b) and the second finger 1512remains engaged with the contact point on the boundary of the 3D volume1504 or the free space surrounding the 3D volume 1504, the multi-touchdisplay device 1502 rotates the cutting plane 1506 spherically about theorigin 1508(a) of the cutting plane 1506 in accordance with the pathtraversed by the first finger 1510 while simultaneously rotating the 3Dvolume 1504 in accordance with the path traversed by the second finger1512.

Spherical Rotation of a Cutting Plane Defined Through a 3D Object andConcurrent Depth Control

The ability to operate a control for spherically rotating a cuttingplane defined through a 3D object concurrently with a control formanipulating the depth of the cutting plane within the 3D object is oneexample of a multi-point control provided by a multi-point inputcomputing system that enables a user to achieve high degree of freedommanipulations of displayed data. In particular, this multi-point controlprovides five degrees of freedom.

FIGS. 16A-16B are diagrams that illustrates multi-point controls forrotating a cutting plane through a 3D object spherically around a pivotpoint and concurrently controlling the depth of the cutting plane withinthe 3D object. As illustrated in FIG. 16, a multi-touch display device1602 is displaying a 3D object 1604 and a cutting plane 1606 definedthrough the 3D object 1604 such that a portion of the 3D object 1604 isnot displayed. In addition, the multi-touch display device 1602 providesan orientation widget 1608—represented as a normal vector thatintersects the origin 1608(a) of the cutting plane 1606—that indicatesthe direction of the cutting plane and that enables a user to rotate thecutting plane 1606 spherically about the origin 1608(a) of the cuttingplane 1606 while concurrently manipulating the depth of the cuttingplane 1606 within the 3D object 1604.

Specifically, the orientation widget 1608 provides a rotation handle1608(b) that enables a user to rotate the cutting plane 1606 sphericallyaround the origin 1608(a) of the cutting plane by touching the rotationhandle 1608(a) with a first finger 1610 and dragging the rotation handle1608(b) along the surface of the multi-touch display device 1602. Inaddition, the orientation widget 1608 enables a user to concurrentlycontrol the depth of the cutting plane 1606 within the 3D object 1604 bytouching the shaft of the orientation widget 1608 with a second finger1612 and sliding the contact point back and forth along the shaft of theorientation widget 1608.

When a user engages the rotation handle 1608(b) of the orientationwidget 1608 with a first finger 1610 at the same time as engaging thedepth control (i.e., the shaft) of the orientation widget 1608 with asecond finger 1612, the multi-touch display device 1602 tracks movementsby the first finger 1610 and the second finger 1612 simultaneously.While the first finger 1610 remains engaged with the rotation handle1608(b) and the second finger 1612 remains engaged with the depthcontrol (i.e., the shaft of the orientation widget 1608), themulti-touch display 1602 rotates the cutting plane 1606 sphericallyabout the origin 1608(a) of the cutting plane in accordance with thepath 1614 traversed by the first finger 1610 while simultaneouslymanipulating the depth of the cutting plane 1606 within the 3D object inaccordance with the position of the second finger 1612 along the shaftof the orientation widget 1608.

The multi-touch controls for rotating the cutting plane 1606concurrently with controlling the depth of the cutting plane 1606 enablea user to slide the cutting plane 1606 back and forth as if along acurved wire that is gradually bent as the user manipulates the rotationhandle 1608(b). FIG. 16B illustrates a sequence of manipulationsperformed on the cutting plane 1606 using multi-touch controls thatenable the cutting plane 1606 to be rotated concurrently withcontrolling the depth of the cutting plane that demonstrate how themulti-touch controls can be operated to slide the cutting plane 1606back and forth as if along a curved wire that is gradually bent as theuser manipulates the rotation handle 1608(b).

Spherical Rotation of a Cutting Plane Defined Through a 3D Object andConcurrent Translation of the Cutting Plane's Origin

The ability to operate a control for spherically rotating a cuttingplane defined through a 3D volume concurrently with a control fortranslating the origin (i.e., the pivot point) of the cutting plane isanother example of a multi-point control provided by a multi-point inputcomputing system that enables a user to achieve high degree of freedommanipulations of displayed data. In particular, this multi-point controlprovides five degrees of freedom.

FIG. 17 is a diagram that illustrates a multi-touch display device 1702displaying a cutting plane 1704 and multi-point controls provided by themulti-touch display device 1704 for rotating the cutting plane 1704spherically around a pivot point while concurrently translating thepivot point of the cutting plane 1704. For ease of illustration, thecutting plane 1704 is illustrated in isolation. Nevertheless, it will beappreciated that the cutting plane 1704 may be defined through a 3D dataset and that the multi-point controls for spherically rotating thecutting plane 1704 while concurrently translating the pivot point of thecutting plane 1704 may be used to rotate the cutting plane 1704 througha 3D data set spherically while concurrently translating the pivot pointof the cutting plane 1704.

As illustrated in FIG. 17, the multi-touch display device 1702 providesan orientation widget 1706—represented as a normal vector thatintersects the origin 1706(a) of the cutting plane 1704—that indicatesthe direction of the cutting plane 1704 and that enables a user torotate the cutting plane 1704 spherically about the origin 1706(a) ofthe cutting plane 1704 while concurrently translating the origin 1706(a)of the cutting plane 1704.

Specifically, the orientation widget 1706 provides a rotation handle1706(b) that enables a user to rotate the cutting plane 1704 sphericallyaround the origin 1706(a) of the cutting plane 1704 by touching therotation handle 1706(a) with a first finger 1708 and dragging therotation handle 1706(b) along the surface of the multi-touch device1702. In addition, the orientation widget 1706 enables a user toconcurrently translate the origin 1706(a) of the cutting plane 1704 bytouching the base of the orientation widget 1706 at the origin of thecutting plane 1706(a) with a second finger 1710 and moving the base ofthe orientation widget 1706 to a new location on the multi-touch displaydevice 1702.

When a user engages the rotation handle 1706(b) of the orientationwidget 1706 with a first finger 1708 at the same time as engaging thebase of the orientation widget 1706 with a second finger 1710, themulti-touch display device 1702 tracks movements by the first finger1708 and the second finger 1710 simultaneously. While the first finger1708 remains engaged with the rotation handle 1706(b) and the secondfinger 1710 remains engaged with the base of the orientation widget1706, the multi-touch display device 1702 rotates the cutting plane 1704in accordance with the path 1712 traversed by the first finger 1708while simultaneously translating the origin of the cutting plane 1704 inaccordance with the path 1714 traversed by the second finger 1710 on themulti-touch display device 1702.

By controlling the rotation of the cutting plane 1704 and thetranslation of the origin 1706(a) concurrently, this multi-point controlvariously rotates the cutting plane 1704 around a pivot (when the baseof the orientation widget 1706 is held fixed), sweeps the cutting plane1704 around in a fixed radius (when the rotation handle 1706(b) is heldfixed), orbits the cutting plane around a point equidistant between theorigin 1706(a) and the rotation handle 1706(b) (when the base of theorientation widget 1706 and the rotation handle 1706(b) are moved inopposing directions), and/or translates the origin 1706(a) in plane(when the base of the orientation widget 1706 and the rotation handle1706(b) are moved in parallel).

An extension to the multi-point control that enables a user to controlthe rotation of the cutting plane 1704 and the translation of the origin1706(a) concurrently is to engage this control at the same time asengaging the view control for rotating the 3D volumetric data set. Forexample, a user may use two or more fingers on one hand to engage themulti-point control for concurrently controlling the rotation of thecutting plane 1704 and the translation of the origin 1706(a) while usingone or more fingers on the user's other hand to engage the view controlfor rotating the 3D volumetric data set. When the multi-touch displaydevice 1702 detects that a user has engaged the multi-point control forconcurrently controlling the rotation of the cutting plane 1704 and thetranslation of the origin 1706(a), the multi-point display device 1702tracks movements of the user's fingers which have engaged the controlsand manipulates the rotation of the cutting plane 1704, the translationof the origin 1706(a), and the rotation of the 3D volumetric data setconcurrently in accordance with the respective movements of the user'sfingers engaging the different controls. For example, in response todetecting that a user is holding both the rotation handle 1706(b) andthe base of the orientation widget 1706 in fixed positions whilerotating the view control, the multi-touch display device may orbit orotherwise reposition the 3D volumetric data set while maintaining thecutting plane 1704 and the view frame (if displayed) such that theyappear fixed with respect to the user.

The multi-touch display device 1702 may provide other multi-pointcontrols that enable a user to control the rotation of the cutting plane1704 and the translation of the origin 1706(a) concurrently. Forexample, the multi-touch display device 1702 may enable the user totranslate the origin 1706(a) by manipulating a view frame superimposedover the cutting plane 1704 (for example as described in connection withFIGS. 12A-12C) while enabling the user to concurrently rotate thecutting plane 1704 using the rotation handle 1706(b) incorporated withinthe orientation widget 1706.

Translation of the Origin of a Cutting Plane Defined Through a 3D Objectand Concurrent Depth Control

A multi-point control that enables a user to translate the origin of acutting plane while concurrently controlling the depth of the cuttingplane (i.e., the offset of the cutting plane along the cutting plane'snormal) is another example of a multi-point control provided by amulti-point input computing system that enables a user to achieve highdegree of freedom manipulations of displayed data. In particular, thismulti-point control provides three degrees of freedom.

FIG. 18 is a diagram that illustrates a multi-touch display device 1802displaying a cutting plane 1804 and multi-point controls provided by themulti-touch display device 1802 for translating the origin of thecutting plane 1804 while concurrently manipulating the depth of cuttingplane 1804. For ease of illustration, the cutting plane 1804 isillustrated in isolation. Nevertheless, it will be appreciated that thecutting plane 1804 may be defined through a 3D data set and that themulti-point controls for translating the origin of the cutting plane1804 and concurrently controlling the depth of the cutting plane 1804may be used to navigate the origin of the cutting plane 1804 in threedimensions through the 3D data set.

As illustrated in FIG. 18, the multi-touch display device 1802 providesan orientation widget 1806—represented as a normal vector thatintersects the origin 1806(a) of the cutting plane 1804—that indicatesthe direction of the cutting plane 1804. The orientation widget 1806provided by the multi-touch display device 1802 enables a user tocontrol the depth of the cutting plane 1806 by touching the shaft of theorientation widget 1806 with a finger 1808 and sliding the contact pointback and forth along the shaft of the orientation widget 1806. Themulti-touch display device 1802 also has superimposed a view frame 1810over the cutting plane 1804. The view frame 1810 is configured such thatthe center of the view frame 1810 is fixed at the origin 1806(a) of thecutting plane 1804 and enables a user to translate the origin 1806(a) ofthe cutting plane 1804 by engaging an edge of the view frame 1810 with afinger 1812 and moving the view frame 1810 across the cutting plane1804.

When a user engages the shaft of the orientation widget 1806 with afirst finger 1808 at the same time as engaging an edge of the view frame1810 with a second finger 1812, the multi-touch display device 1802tracks movements by the first finger 1808 and the second finger 1810simultaneously. While the first finger 1808 remains engaged with theshaft of the orientation widget 1806 and the second finger 1812 remainsengaged with an edge of the view frame 1810, the multi-touch displaydevice 1802 manipulates the depth of the cutting plane 1804 inaccordance with the path 1814 traced by the first finger 1808 along theshaft of the orientation widget 1806 while simultaneously translatingthe origin 1806(a) of the cutting plane in accordance with the path 1816imparted on the view frame 1810 by the second finger 1812. By enabling auser to control the location of the origin 1806(a) while concurrentlycontrolling the depth of the cutting plane 1804, this multi-pointcontrol allows the user to control the location of the origin 1806(a) inthree dimensions.

As touched on repeatedly throughout this disclosure, many of thecontrols described above enable ready combination and/or compositionwith other controls in addition to providing relatively straightforwardand intuitive transitions between controls. The relative ease with whichthese controls may be combined and/or composed as well as the relativelylow degree of complexity involved in transitioning between variousdifferent combinations and/or compositions of these controls isperceived as a factor that may enable users who otherwise areunaccustomed to multi-touch controls to adapt to using these controlsrelatively effortlessly. The transition to higher degree of freedomcontrols also is encouraged by making available control handles visibleand potentially marked as available to the user during an interactionmode, rather than conveying to the user that certain control handles arerestricted when other control handles are engaged.

The use of higher degree of freedom controls also is encouraged byensuring that the various controls are placed within easy reachingdistance of one another—as an example, the length of the shaft of theorientation widget may be kept at a maximum of three or four inches toallow a user to access both the rotation handle on one end of theorientation widget and the origin at the other end of the orientationwidget to be engaged concurrently with the thumb and forefinger of onehand. Likewise, the active regions of the rotation and origin controlhandles may be made small enough that a second finger could access theshaft of the orientation widget to perform a depth-sliding operationwhile concurrently engaging both the rotation and origin handles.

In some implementations, the physical dimensions of the display surfacemay be a factor that influences the scale and the position of thecontrols provided by a multi-touch display device. For example, thedimensions of the display on a tablet device may be very different froma wall-sized screen. Consequently, when implemented in the context of atablet device, the scale and the position of the controls may bedifferent than the scale and the position of the controls whenimplemented in the context of a wall-sized screen. In suchimplementations, feedback received from hardware devices, an operatingsystem, software, or user entry may enable determination of screen sizeand, correspondingly, determination of and modifications to scale,control positions and relative distances between controls. By way ofexample, to maintain operable constraints, determination of a greaterthan threshold (or default) screen size (or related indicia) results inan effective decrease in the size of or relative distances betweencontrols, by, for instance, diminishing the increase in size or relativedistance that otherwise would be applied to displayed features as aresult of scaling up from a small screen display to a larger screendisplay or by otherwise fixing or observing a maximum distance orrelative increase. More specifically, the distance between the cuttingplane and the rotation handle may increase when increasing display sizefrom a default screen to a very large screen, but the distance may bethrottled or capped relative to the ratio of size increase in the screendisplay. Similarly, determination of a smaller than threshold (ordefault) screen size (or related indicia) results in an effectiveincrease in the size of or relative distances between controls, by, forinstance, limiting the decrease in size or relative distance thatotherwise would be applied to displayed features as a result of scalingdown from a large screen display to a smaller screen display or byotherwise fixing or observing a minimum distance or relative decrease.More specifically, the distance between the cutting plane and therotation handle may decrease when decreasing display size from a defaultscreen to a smaller screen, but the distance may be throttled or cappedrelative to the ratio of size decrease in the screen display.

Furthermore, the physical dimensions of an expected user may be anotherfactor that influences the scale and the position of the controlsprovided by a multi-touch display device. For example, when implementedin an application targeted to children, the controls provided by amulti-touch display device may be scaled and positioned to accommodatethe smaller finger dimensions and reaching distances of childrenrelative to adults.

FIG. 19 is a state diagram that summarizes how, in some implementations,various of the controls described above may be combined and/or composedto form multi-touch controls that enable high degree of freedommanipulations. Specifically, examples of mechanisms for combining and/orcomposing individual controls for manipulating data displayed on amulti-touch display device with two or fewer degrees of freedom toachieve multi-touch controls that enable manipulations with three ormore degrees of freedom are illustrated. In addition, mechanisms fortransitioning between different multi-touch controls that enable threeor more degrees of freedom also are illustrated.

FIGS. 20A-20F illustrate various implementations of linear slidercontrols configured to modify the mapping of data values tocorresponding values along a function (e.g., a straight line). Forexample, an image's pixel values may be mapped to correspondinggrayscale values defined by a straight line, the slope of which definesthe contrast of the range of grayscale values to which the image's pixelvalues are mapped and the y-intercept of which corresponds to thebrightness of grayscale values to which the image's pixel values aremapped. For instance, a square, two-dimensional space having an equalnumber of rows and columns may be defined. All of the columns may beidentical, and each column may include a predefined number of differentgrayscale values (e.g., 256 grayscale values) ordered from top to bottomfrom brightest to darkest values. A straight line passing through thistwo dimensional space intersects different grayscale values in differentcolumns, thereby defining the mappings between an image's pixel valuesand corresponding grayscale values. In such scenarios, the slope andy-intercept of the line define the range (and thus also the contrast andthe brightness) of the grayscale values to which the image's pixelvalues are mapped.

A linear slider control may be configured to enable manipulation of theslope and y-intercept of the line of grayscale values to which animage's pixel values are mapped by changing the positions of one or morecontrol handles located along the slider control, thereby enabling thecontrast and brightness of pixel values in an image to be changed basedon detected changes in position(s) of the control handles and/or therange between the control handles.

As shown in FIG. 20A, a multi-touch display device provides a slidercontrol 2000. The multi-touch display device is configured to detectlateral movements of one or more handles positioned along the sliderbetween edges of a linear path. The path is commonly a straight line,like a physical slider control, but in practice, the path may be aportion of a circle or otherwise non-linear path. The slider control2000 is configured to enable manipulations to an associated function,such as, for example, a straight line as illustrated in FIG. 20A.

When the multi-touch display device detects that an input mechanism(e.g., a finger) has engaged a control handle (e.g., a point) locatedalong slider control 2000, the multi-touch display device tracksmovements of the input mechanism while the input mechanism remainsengaged with control handle along the slider control 2000. In addition,in response to detected movements of the input mechanism while the inputmechanism remains engaged with the control handle along the slidercontrol 2000, the multi-touch display device manipulates the associatedline as a function of the detected movements of the input mechanism. Forexample, as illustrated in FIG. 20A, in response to detecting that theinput mechanism has moved in a rightward direction along slider control2000 while engaging a control handle, the multi-touch display devicetranslates the line to the right, which, in turn, decreases they-intercept of the line. If, as in the above example, the line definesmappings between an image's pixel values and corresponding grayscalevalues with the y-intercept of the line defining the brightness of thegrayscale values to which the image's pixel values are mapped,translating the line in a rightward direction results in decreasing thebrightness of the grayscale values to which the image's pixel values aremapped. In the event that the multi-touch display device detects that auser has engaged a control handle along slider control 2000 andtranslated the slider in a leftward direction along slider control 2000,the multi-touch display device similarly translates the line to theleft, thereby increasing the y-intercept of the line, which, in theabove example, results in increasing the brightness of the grayscalevalues to which the image's pixel values are mapped.

As shown in FIG. 20B, as an extension of this basic mode of operation,the slider utility may be configured to receive input from multipleinput mechanisms (e.g., fingers) concurrently, enabling correspondingchanges to the function with which the slider is associated. Asillustrated in FIG. 20B, responsive to a determination that inputmechanisms have engaged two control handles (e.g., two points) alongslider control 2000 concurrently, the multi-touch display device tracksmovements of the two input mechanisms and manipulates both the slope andthe y-intercept of the line as a function of the tracked movements ofthe input mechanisms.

In this manner, if the multi-touch display device detects that the inputmechanisms engaging the control handles have been moved closer together,the multi-touch display device increases the slope of the line. Incontrast, if the multi-touch display device detects that the inputmechanisms engaging the control handles have been moved further apart,the multi-touch display device decreases the slope of the line.

As illustrated in FIG. 20B, in response to detecting that the two inputmechanisms engaging control handles along slider 2000 have been movedcloser together while also being translated in a leftward directionalong slider 2000, the multi-touch display device increases the slope ofthe line while at the same time decreasing the y-intercept of the line.If, as in the above example, the line defines the mappings between animage's pixel values and corresponding grayscale values with they-intercept of the line defining the brightness of the grayscale valuesto which the image's pixel values are mapped and the slope defining thecontrast between the grayscale values to which the image's pixel valuesare mapped, increasing the slope of the line increases the contrast ofthe grayscale values while translating the line to the left decreasesthe brightness of the grayscale values.

FIGS. 20C-20F illustrate further examples of the application of slidercontrols, such as those described with respect to FIGS. 20A-20B, tobrightness and contrast level adjustments of rendered images.

In one example using a range slider control, a brightness/contrastcontrol maps image pixel values to grayscale values defined by a singlestraight line, whose slope and offset (y-intercept) can be changed.Here, contrast corresponds to slope, while brightness corresponds toy-intercept, thereby leading to a linear mapping. Detecting relative andabsolute movements of fingers engaging the slider control, the contrastof the image is correspondingly adjusted, in an intuitive manner, wheresqueezing closer increases the contrast, and separating further apartdecreases contrast. Meanwhile, the offset of the function can beadjusted based on detected manipulations of the slider control, therebyresulting in changes to the brightness of the image, or perhaps morerelevantly, changes can be made to the location of the contrasting partof the function in the data domain.

As illustrated in FIGS. 20C-20F, the range of grayscale values used torender an image are displayed above the shown slider controls, therebyillustrating examples of different effects achieved through manipulationof the slider controls.

Referring to FIG. 20C, when the multi-touch display device detects thata single input mechanism has engaged a control handle along the slidercontrol and translated the control handle along the slider control, themulti-touch display device modifies the y-intercept of the linecorresponding to the slider control, resulting in changes to thebrightness of the grayscale values within the range of grayscale valuesused to render the image. In particular, in response to detecting thatan input mechanism has engaged a control handle and translated thecontrol handle in a rightward direction along the slider control, themulti-touch display device translates the line corresponding to theslider control to the right, causing the range of grayscale values usedto render the image to include darker grayscale values, resulting in adarker image, as illustrated in FIG. 20C.

Notice that not only does the rendered image appear darker, but that therange of grayscale values used to render the image that is displayedabove the slider control also has been shifted to include darker values.In some cases, the number of different grayscale values used to renderan image may remain the same in response to manipulations such as themanipulation illustrated in FIG. 20C, whereas, in other cases, thenumber of different grayscale values used to render an image mayincrease or decrease in response to manipulations such as themanipulation illustrated in FIG. 20C.

Of course, had the input mechanism engaging the control handletranslated the control handle to the left instead of the right, themulti-touch display device would have translated the line correspondingto the slider control to the left, instead of to the right, causing therange of grayscale values to be used to render the image to includebrighter values, which would have resulted in a brighter image.

Referring to FIG. 20D, when the multi-touch display device detects thattwo input mechanisms have engaged control handles along the slidercontrol concurrently and translated the control handles along the slidercontrol, the multi-touch display device modifies both the slope and they-intercept of the line corresponding to the slider control, resultingin changes to both the contrast and the brightness of the grayscalevalues within the range of grayscale values used to render the image. Inparticular, in response to detecting that two input mechanisms haveengaged control handles and increased the separation between the controlhandles while also translating the control handles in a rightwarddirection along the slider control, the multi-touch display devicedecreases the slope of the line corresponding to the slider controlwhile also translating the line corresponding to the slider control tothe right. As a result, as illustrated in FIG. 20C, the range ofgrayscale values used to render the image is decreased, resulting inless contrast within the rendered image, while also being shifted toinclude darker grayscale values, resulting in a darker image.

Notice that not only does the rendered image have less contrast and isdarker, but also the range of grayscale values used to render the imagethat is displayed above the slider control includes fewer grayscalevalues and has been shifted to include darker values.

Referring to FIGS. 20E-20F, in response to detecting that two inputmechanisms have engaged control handles and decreased the separationbetween the control handles, the multi-touch display device increasesthe slope of the line corresponding to the slider control. As a result,as illustrated in FIG. 20F, the multi-touch display device increase therange of grayscale values used to render the image to include moregrayscale values, resulting in greater contrast within the renderedimage.

Notice that not only does the rendered image have more contrast as aresult, but also the range of grayscale values used to render the imagethat is displayed above the slider control includes more grayscalevalues.

The slider controls illustrated in FIGS. 20A-20F can be used incombination with any of the other controls for manipulating volumetricdata described throughout.

The described systems, methods, and techniques may be implemented indigital electronic circuitry, computer hardware, firmware, software, orin combinations of these elements. Apparatuses embodying thesetechniques may include appropriate input and output devices, a computerprocessor, and a tangible computer-readable storage medium on which acomputer program or other computer-readable instructions are stored forexecution by one or more processing devices (e.g., a programmableprocessor).

A process embodying these techniques may be performed by a programmableprocessor executing a program of instructions to perform desiredfunctions by operating on input data and generating appropriate output.The techniques may be implemented in one or more computer programs thatare executable on a programmable system including at least oneprogrammable processor coupled to receive data and instructions from,and to transmit data and instructions to, a data storage system, atleast one input device, and at least one output device. Each computerprogram may be implemented in a high-level procedural or object-orientedprogramming language, or in assembly or machine language if desired; andin any case, the language may be a compiled or interpreted language.

Suitable processors include, by way of example, both general and specialpurpose microprocessors. Generally, a processor will receiveinstructions and data from a read-only memory and/or a random accessmemory. Storage devices suitable for storing computer programinstructions and data include all forms of non-volatile memory,including by way of example semiconductor memory devices, such asErasable Programmable Read-Only Memory (EPROM), Electrically ErasableProgrammable Read-Only Memory (EEPROM), and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and Compact Disc Read-Only Memory (CD-ROM). Anyof the foregoing may be supplemented by, or incorporated in,specially-designed application-specific integrated circuits (ASICs).

The various controls for manipulating displayed content described hereingenerally are described in the context of multi-touch display devices,which are configured to receive multiple inputs at the same time.

The various different controls described herein may be implemented bothon multi-touch display devices that require physical contact with thesurface of the multi-touch display device in order to receive input andmulti-touch display devices that do not require physical contact withthe surface of the multi-touch display device in order to receive input.For example, the controls described herein may be implemented onmulti-touch display devices that receive input by detecting contact withthe surface of the multi-touch display device by a finger, a stylus,some other mechanical, electro-mechanical, or magnetic input mechanismand/or any combination of multiple such input mechanisms at the sametime. Additionally or alternatively, the various different controlsdescribed herein may be implemented on multi-touch display devices thatreceive input by detecting the presence of an input mechanism in thevicinity of the surface of the multi-touch display device but that thatdo not necessarily require physical contact to be made with the surfaceof the multi-touch display device to receive input. Such multi-touchdisplay devices may be configured to receive input by detecting thepresence of a finger, a stylus, some other mechanical,electro-mechanical, or magnetic input mechanism and/or any combinationof multiple such input mechanisms in the vicinity of the surface of themulti-touch display device even when such input mechanisms are not inphysical contact with the surface of the multi-touch display device.

The various different controls described herein also may be implementedin any other type of multi-point computing system configured to receivemultiple inputs at the same, including, for example, systems configuredto receive concurrent input from multiple pointing devices (e.g.,multiple computer mice) and/or concurrent input from one or morepointing devices and another input device (e.g., a keyboard). Anotherexample of a multi-point input computing system within which thecontrols described herein may be implemented is a multi-point inputcapable standalone tablet without an integrated display.

Various modifications may be made. For example, useful results still maybe achieved if steps of the disclosed techniques are performed in adifferent order and/or if components of the disclosed systems arecombined in a different manner and/or replaced or supplemented by othercomponents. Furthermore, while the systems and operations previouslydescribed generally were described in the context of defining andmanipulating a single cutting plane through a 3D volume, the controlsdescribed herein are equally applicable to manipulating displayed datawhen two or more cutting planes are simultaneously defined.

What is claimed is:
 1. A computer-implemented method of enabling visual navigation through a three-dimensional data set on a multi-touch display device, the method comprising: accessing a three-dimensional data set from a computer memory storage device; rendering, on a first region of a multi-touch display device, a three-dimensional view based on the accessed three-dimensional data set; specifying an equation that defines a two-dimensional plane that intersects a space defined by the three-dimensional data set, that defines a two-dimensional data set within the three-dimensional data set, and that divides the three-dimensional data set into first and second subsets of the three-dimensional data set, the two-dimensional plane having a normal defining a positive direction relative to the two-dimensional plane and a negative direction relative to the two-dimensional plane, the first and second subsets of the three-dimensional data set being disjoint and corresponding to points located on opposing sides of the two-dimensional plane from one another, the first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the two-dimensional plane, and the second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the two-dimensional plane; specifying, on the two-dimensional plane, a bounded area defining first and second subsets of the two-dimensional data set, the first and second subsets of the two-dimensional data set being disjoint, the first subset of the two-dimensional data set corresponding to points that lie within the bounded area on the two-dimensional plane, and the second subset of the two-dimensional data set corresponding to points that lie outside of the bounded area on the two-dimensional plane; updating the rendering, on the multi-touch display device, of the three-dimensional view based on the three-dimensional data set to visually depict the two-dimensional plane by: removing at least a portion of the visual display of the first subset of the three-dimensional data set from the visual display of the three-dimensional view based on the three-dimensional data set, displaying, within the three-dimensional view based on the three-dimensional data set, a visual indication of the bounded area on the two-dimensional plane, and displaying, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the two-dimensional data set; rendering, on a second region of the multi-touch display device that is distinct from the first region of the multi-touch display device, a two-dimensional view of the first subset of the two-dimensional data set such that the multi-touch display device concurrently displays both the two-dimensional view of the first subset of the two-dimensional data set and the updated three-dimensional view based on the three-dimensional data set that visually depicts the two-dimensional plane; providing a first control set that enables a user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the second region of the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, the first control set including: a first translation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, translate the bounded area on the two-dimensional plane to a new position on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the translated bounded area on the two-dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the translated bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by translating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the new position of the translated bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the translated bounded area on the two-dimensional plane; a first scale control configured to: detect engagement by at least two input mechanisms of at least two points on the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, track movement of the at least two input mechanisms while the at least two input mechanisms remain engaged with the one or more points on the multi-touch display device, scale dimensions of the bounded area on the two-dimensional plane as a function of the tracked movement of the at least two input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the scaled bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the scaled bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by scaling, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the scaled dimensions of the scaled bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the scaled bounded area on the two-dimensional plane; and a first rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, rotate the bounded area on the two-dimensional plane in two-dimensions around a point within the bounded area as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the rotated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the rotated bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by rotating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the rotation of the rotated bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane; and providing a second control set that enables a user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the multi-touch display device corresponding to the display within the three-dimensional data set based on the visual indication of the bounded area on the two-dimensional plane, the second control set including: a second translation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, translate the bounded area on the two-dimensional plane to a new position on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the translated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the translated bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by translating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the new position of the translated bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the translated bounded area on the two-dimensional plane; a second scale control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, scale dimensions of the bounded area on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the scaled bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the scaled bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by scaling, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the scaled dimensions of the scaled bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the scaled bounded area on the two-dimensional plane; and a second rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, rotate the bounded area on the two-dimensional plane in two dimensions around a point within the bounded area as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the rotated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the rotated bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by rotating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the rotation of the rotated bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane.
 2. The method of claim 1 wherein providing the first control set that enables the user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the second region of the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set and providing the second control set that enables the user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the multi-touch display device corresponding to the display within the three-dimensional data set of the visual indication of the bounded area on the two-dimensional plane includes enabling the user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging one or more points on the second region of the multi-touch display device while concurrently engaging one or more points on the multi-touch display device corresponding to the display within the three-dimensional data set of the visual indication of the bounded area on the two-dimensional plane.
 3. The method of claim 1 further comprising providing a data set rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the three-dimensional view based on the three-dimensional data set; track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, rotate the three-dimensional data set about a point within the three-dimensional data set as a function of the tracked movement of the one or more input mechanisms such that the two-dimensional plane defines a different two-dimensional data set within the three-dimensional data set and divides the three-dimensional data set into different first and second subsets of the three-dimensional data set, the different first and second subsets of the three-dimensional data set being disjoint and on opposing sides of the two-dimensional plane from one another, the different first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the two-dimensional plane, the different second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the two-dimensional plane, the bounded area on the two-dimensional plane defining first and second subsets of the different two-dimensional data set, the first subset of the different two-dimensional data set including data corresponding to points that lie within the bounded area on the two-dimensional plane, and the second subset of the different two-dimensional data set including data corresponding to points that lie outside of the bounded area on the two-dimensional plane; update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set to reflect the rotation of the three-dimensional data set including: rotate the three-dimensional view based on the three-dimensional data set, remove at least a portion of the visual display of the different first subset of the three-dimensional data set from the visual display of the three-dimensional view based on the three-dimensional data set, and display, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the different two-dimensional data set; and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the first subset of the different two-dimensional data set.
 4. The method of claim 3 further comprising defining a boundary of the three-dimensional view based on the three-dimensional data set, wherein the data set rotation control is configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the three-dimensional view based on the three-dimensional data set by detecting engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the boundary of the three-dimensional view based on the three-dimensional data set; and track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device by tracking movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device corresponding to the boundary of the three-dimensional view based on the three-dimensional data set.
 5. The method of claim 4 further comprising rendering, on the multi-touch display device, a visual indication of the boundary of the three-dimensional view based on the three-dimensional data set.
 6. The method of claim 1 wherein providing the second control set that enables a user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the multi-touch display device corresponding to the display within the three-dimensional data set of the visual indication of the bounded area on the two-dimensional plane further comprises providing a third rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the visual indication of the bounded area on the two-dimensional plane; track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device; modify the equation for the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms to rotate the two-dimensional plane in three dimensions about a point on the two-dimensional plane such that the two-dimensional plane defines a different two-dimensional data set of the three-dimensional data set and divides the three-dimensional data set into different first and second subsets of the three-dimensional data set, the different first and second subsets of the three-dimensional data set being disjoint and on opposing sides of the two-dimensional plane from one another, the different first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the two-dimensional plane, the different second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the two-dimensional plane, the bounded area on the two-dimensional plane defining first and second subsets of the different two-dimensional data set, the first subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie within the bounded area on the two-dimensional plane, and the second subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie outside of the bounded area on the two-dimensional plane; update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set to reflect the rotation of the two-dimensional plane including: remove at least a portion of the visual display of the different first subset of the three-dimensional data set from the visual display of the three-dimensional view based on the three-dimensional data set, display, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the different two-dimensional data set, and rotate through the three-dimensional view based on the three-dimensional data set the visual indication of the bounded area on the two-dimensional plane; and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the first subset of the different two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane.
 7. The method of claim 1 further comprising providing a two-dimensional plane depth control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the visual display of the three-dimensional view based on the three-dimensional data set; track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device; modify the equation for the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms to translate the two-dimensional plane in a direction along the normal of the two-dimensional plane such that the two-dimensional plane defines a different two-dimensional data set within the three-dimensional data set and divides the three-dimensional data set into different first and second subsets of the three-dimensional data set, the different first and second subsets of the three-dimensional data set being disjoint and on opposing sides of the two-dimensional plane from one another, the different first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the translated two-dimensional plane, the different second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the translated two-dimensional plane, the bounded area on the two-dimensional plane defining first and second subsets of the different two-dimensional data set, the first subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie within the bounded area on the two-dimensional plane, and the second subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie outside of the bounded area on the two-dimensional plane; update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set to reflect the translation of the two-dimensional plane including: remove at least a portion of the visual display of the different first subset of the three-dimensional data set from the visual display based on the three-dimensional view of the three-dimensional data set, display, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the different two-dimensional data set, and translate through the three-dimensional view based on the three-dimensional data set the visual indication of the bounded area on the two-dimensional plane; and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the first subset of the different two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane.
 8. The method of claim 1 wherein removing at least a portion of the visual display of the first subset of the three-dimensional data set from the visual display of the three-dimensional view based on the three-dimensional data set includes removing all of the visual display of the first subset of the three-dimensional data set from the visual display based on the three-dimensional view of the three-dimensional data set.
 9. The method of claim 1 wherein displaying, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the two-dimensional data set includes displaying, within the three-dimensional view based on the three-dimensional data set, all of the first subset of the two-dimensional data set.
 10. The method of claim 1 wherein displaying, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the two-dimensional data set includes displaying, within the three-dimensional view based on the three-dimensional data set, all of the two-dimensional data set.
 11. The method of claim 1 wherein the first subset of the three-dimensional data set only includes data from the three-dimensional data set that is in the positive direction relative to the two-dimensional plane.
 12. The method of claim 11 wherein the first subset of the three-dimensional data set includes all of the data from the three-dimensional data set that is in the positive direction relative to the two dimensional plane.
 13. The method of claim 1 wherein the second subset of the three-dimensional data set only includes data from the three-dimensional data set that is in the two-dimensional data set or that is in the negative direction relative to the two-dimensional plane.
 14. The method of claim 13 wherein the second subset of the three-dimensional data set includes all of the data from the three-dimensional data set that is in the two-dimensional data set and all of the data from the three-dimensional data set that is in the negative direction relative to the two-dimensional plane.
 15. A non-transitory computer-readable storage device storing instructions that, when executed by a computing system, cause the computing system to: access a three-dimensional data set from a computer memory storage device; render, on a first region of a multi-touch display device, a three-dimensional view based on the accessed three-dimensional data set; specify an equation that defines a two-dimensional plane that intersects a space defined by the three-dimensional data set, that defines a two-dimensional data set within the three-dimensional data set, and that divides the three-dimensional data set into first and second subsets of the three-dimensional data set, the two-dimensional plane having a normal defining a positive direction relative to the two-dimensional plane and a negative direction relative to the two-dimensional plane, the first and second subsets of the three-dimensional data set being disjoint and corresponding to points located on opposing sides of the two-dimensional plane from one another, the first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the two-dimensional plane, and the second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the two-dimensional plane; specify, on the two-dimensional plane, a bounded area defining first and second subsets of the two-dimensional data set, the first and second subsets of the two-dimensional data set being disjoint, the first subset of the two-dimensional data set corresponding to points that lie within the bounded area on the two-dimensional plane, and the second subset of the two-dimensional data set corresponding to points that lie outside of the bounded area on the two-dimensional plane; update the rendering, on the multi-touch display device, of the three-dimensional view based on the three-dimensional data set to visually depict the two-dimensional plane by: removing at least a portion of the visual display of the first subset of the three-dimensional data set from the visual display of the three-dimensional view based on the three-dimensional data set, displaying, within the three-dimensional view based on the three-dimensional data set, a visual indication of the bounded area on the two-dimensional plane, and displaying, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the two-dimensional data set; render, on a second region of the multi-touch display device that is distinct from the first region of the multi-touch display device, a two-dimensional view of the first subset of the two-dimensional data set such that the multi-touch display device concurrently displays both the two-dimensional view of the first subset of the two-dimensional data set and the updated three-dimensional view based on the three-dimensional data set that visually depicts the two-dimensional plane; providing a first control set that enables a user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the second region of the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, the first control set including: a first translation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, translate the bounded area on the two-dimensional plane to a new position on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the translated bounded area on the two-dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the translated bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by translating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the new position of the translated bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the translated bounded area on the two-dimensional plane; a first scale control configured to: detect engagement by at least two input mechanisms of at least two points on the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, track movement of the at least two input mechanisms while the at least two input mechanisms remain engaged with the one or more points on the multi-touch display device, scale dimensions of the bounded area on the two-dimensional plane as a function of the tracked movement of the at least two input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the scaled bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the scaled bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by scaling, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the scaled dimensions of the scaled bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the scaled bounded area on the two-dimensional plane; and a first rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, rotate the bounded area on the two-dimensional plane in two-dimensions around a point within the bounded area as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the rotated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the rotated bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by rotating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the rotation of the rotated bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane; and providing a second control set that enables a user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the multi-touch display device corresponding to the display within the three-dimensional data set based on the visual indication of the bounded area on the two-dimensional plane, the second control set including: a second translation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, translate the bounded area on the two-dimensional plane to a new position on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the translated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the translated bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by translating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the new position of the translated bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the translated bounded area on the two-dimensional plane; a second scale control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, scale dimensions of the bounded area on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the scaled bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the scaled bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by scaling, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area on the two-dimensional plane to reflect the scaled dimensions of the scaled bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the scaled bounded area on the two-dimensional plane; and a second rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, rotate the bounded area on the two-dimensional plane in two dimensions around a point within the bounded area as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the rotated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the rotated bounded area on the two dimensional plane, update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set by rotating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the rotation of the rotated bounded area on the two-dimensional plane, and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane.
 16. The non-transitory computer-readable storage device of claim 15 wherein the instructions that, when executed by a computing system, cause the computing system to provide the first control set that enables the user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the second region of the multi-touch display device corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set and to provide the second control set that enables the user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the multi-touch display device corresponding to the display within the three-dimensional data set of the visual indication of the bounded area on the two-dimensional plane include instructions that, when executed by a computing system, cause the computing system to enable the user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging one or more points on the second region of the multi-touch display device while concurrently engaging one or more points on the multi-touch display device corresponding to the display within the three-dimensional data set of the visual indication of the bounded area on the two-dimensional plane.
 17. The non-transitory computer-readable storage device of claim 15 further storing instructions that, when executed by a computing system, cause the computing system to provide a data set rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the three-dimensional view of the three-dimensional data set; track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device, rotate the three-dimensional data set about a point within the three-dimensional data set as a function of the tracked movement of the one or more input mechanisms such that the two-dimensional plane defined through the three-dimensional data set defines a different two-dimensional data set within the three-dimensional data set and divides the three-dimensional data set into different first and second subsets of the three-dimensional data set, the different first and second subsets of the three-dimensional data set being disjoint and on opposing sides of the two-dimensional plane from one another, the different first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the two-dimensional plane, the different second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the two-dimensional plane, the bounded area on the two-dimensional plane defining first and second subsets of the different two-dimensional data set, the first subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie within the bounded area on the two-dimensional plane, and the second subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie outside of the bounded area on the two-dimensional plane; update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set to reflect the rotation of the three-dimensional data set including: rotate the three-dimensional view based on the three-dimensional data set, remove at least a portion of the visual display of the different first subset of the three-dimensional data set from the visual display based on the three-dimensional view of the three-dimensional data set, and display, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the different two-dimensional data set; and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the first subset of the different two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane.
 18. The non-transitory computer-readable storage device of claim 15 wherein the instructions that, when executed by a computing system, cause the computing system to provide the second control set that enables a user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the multi-touch display device corresponding to the display within the three-dimensional data set of the visual indication of the bounded area on the two-dimensional plane further comprise instructions that, when executed by a computing system, cause the computing system to provide a third rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the display of the visual indication of the bounded area on the two-dimensional plane; track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device; modify the equation for the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms to rotate the two-dimensional plane in three dimensions about a point on the two-dimensional plane such that the two-dimensional plane defines a different two-dimensional data set within the three-dimensional data set and divides the three-dimensional data set into different first and second subsets of the three-dimensional data set, the different first and second subsets of the three-dimensional data set being disjoint and on opposing sides of the two-dimensional plane from one another, the different first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the two-dimensional plane, the different second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the two-dimensional plane, the bounded area on the two-dimensional plane defining first and second subsets of the different two-dimensional data set, the first subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie within the bounded area on the two-dimensional plane, and the second subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie outside of the bounded area on the two-dimensional plane; update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set to reflect the rotation of the two-dimensional plane: remove at least a portion of the visual display of the different first subset of the three-dimensional data set from the visual display of the three-dimensional view based on the three-dimensional data set, display, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the different two-dimensional data set, and rotate through the three-dimensional view based on the three-dimensional data set the visual indication of the bounded area on the two-dimensional plane; and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the first subset of the different two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane.
 19. The non-transitory computer-readable storage medium of claim 15 further comprising instructions that, when executed by a computing system, cause the computing system to provide a two-dimensional plane depth control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch display device corresponding to the visual display of the three-dimensional view of the three-dimensional data set; track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch display device; modify the equation for the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms to translate the two-dimensional plane in a direction along the normal of the two-dimensional plane such that the two-dimensional plane defines a different two-dimensional data set within the three-dimensional data set and divides the three-dimensional data set into different first and second subsets of the three-dimensional data set, the different first and second subsets of the three-dimensional data set being disjoint and on opposing sides of the two-dimensional plane from one another, the different first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the translated two-dimensional plane, the different second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the translated two-dimensional plane, the bounded area on the two-dimensional plane defining first and second subsets of the different two-dimensional slice of the three-dimensional data set, the first subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie within the bounded area on the two-dimensional plane, and the second subset of the different two-dimensional data set including data from the different two-dimensional data set that corresponds to points that lie outside of the bounded area on the two-dimensional plane; update the rendering, on the multi-touch display device of the three-dimensional view based on the three-dimensional data set to reflect the translation of the two-dimensional plane: remove at least a portion of the visual display of the different first subset of the three-dimensional data set from the visual display of the three-dimensional view based on the three-dimensional data set, display, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the different two-dimensional data set, and translate through the three-dimensional view based on the three-dimensional data set the visual indication of the bounded area on the two-dimensional plane; and update the rendering, on the multi-touch display device, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the first subset of the different two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane.
 20. A multi-touch display device comprising: a display; a multi-touch input sensor; a processor; and a computer memory device storing instructions that, when executed by the processor, cause the processor to: access a three-dimensional data set; render, on a first region of the display, a three-dimensional view based on the accessed three-dimensional data set; specify an equation for a two-dimensional plane that defines a two-dimensional plane that intersects a space defined by the three-dimensional data set, defines a two-dimensional data set within the three-dimensional data set, and that divides the three-dimensional data set into first and second subsets of the three-dimensional data set, the two-dimensional plane having a normal defining a positive direction relative to the two-dimensional plane and a negative direction relative to the two-dimensional plane, the first and second subsets of the three-dimensional data set being disjoint and corresponding to points located on opposing sides of the two-dimensional plane from one another, the first subset of the three-dimensional data set including data from the three-dimensional data set that is in the positive direction relative to the two-dimensional plane, and the second subset of the three-dimensional data set including data from the three-dimensional data set that is in the negative direction relative to the two-dimensional plane; specify, on the two-dimensional plane, a bounded area, the bounded area defining first and second subsets of the two-dimensional data set, the first and second subsets of the two-dimensional data set being disjoint, the first subset of the two-dimensional data set including data from the two-dimensional data set that corresponds to points that lie within the bounded area on the two-dimensional plane, and the second subset of the two-dimensional data set including data from the two-dimensional data set that lies outside of the bounded area on the two-dimensional plane; update the rendering, on the display, of the three-dimensional view based on the three-dimensional data set to visually depict the two-dimensional plane by: removing at least a portion of the visual display of the first subset of the three-dimensional data set from the visual display of the three-dimensional view based on the three-dimensional data set, displaying, within the three-dimensional view based on the three-dimensional data set, a visual indication of the bounded area on the two-dimensional plane, and displaying, within the three-dimensional view based on the three-dimensional data set, at least a portion of the first subset of the two-dimensional data set; render, on a second region of the display that is distinct from the first region of the display, a two-dimensional view of the first subset of the two-dimensional data set such that the display concurrently displays both the two-dimensional view of the first subset of the two-dimensional data set and the updated three-dimensional view based on the three-dimensional data set that visually depicts the two-dimensional plane; provide a first control set that enables a user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the second region of the multi-touch input sensor corresponding to the display of the two-dimensional view of the first subset of the two-dimensional slice of data intersected by the two-dimensional plane, the first control set including: a first translation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch input sensor corresponding to the display of the two-dimensional view of the first subset of the two-dimensional slice of data, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch input sensor, translate the bounded area on the two-dimensional plane to a new position on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the translated bounded area on the two-dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the translated bounded area on the two dimensional plane, update the rendering, on the display of the three-dimensional view based on the three-dimensional data set by translating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the new position of the translated bounded area on the two-dimensional plane, and update the rendering, on the display, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the translated bounded area on the two-dimensional plane; a first scale control configured to: detect engagement by at least two input mechanisms of at least two points on the multi-touch input sensor corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, track movement of the at least two input mechanisms while the at least two input mechanisms remain engaged with the one or more points on the multi-touch input sensor, scale dimensions of the bounded area on the two-dimensional plane as a function of the tracked movement of the at least two input mechanisms such that a new first subset of the two-dimensional slice of data corresponds to points that lie within the scaled bounded area on the two-dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the scaled bounded area on the two dimensional plane, update the rendering, on the display of the three-dimensional view of the three-dimensional data set by scaling, within the three-dimensional view of the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the scaled dimensions of the scaled bounded area on the two-dimensional plane, and update the rendering, on the display, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the scaled bounded area on the two-dimensional plane; and a first rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch input sensor corresponding to the display of the two-dimensional view of the first subset of the two-dimensional data set, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch input sensor, rotate the bounded area on the two-dimensional plane in two-dimensions around a point within the bounded area as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the rotated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the rotated bounded area on the two dimensional plane, update the rendering, on the display, of the three-dimensional view based on the three-dimensional data set by rotating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the rotation of the rotated bounded area on the two-dimensional plane, and update the rendering, on the display, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane; and provide a second control set that enables a user of the multi-touch display device to visually navigate through the three-dimensional data set by engaging points on the multi-touch input sensor corresponding to the display within the three-dimensional data set of the visual indication of the bounded area on the two-dimensional plane, the second control set including: a second translation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch input sensor corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch input sensor, translate the bounded area on the two-dimensional plane to a new position on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the translated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the translated bounded area on the two dimensional plane, update the rendering, on the display of the three-dimensional view based on the three-dimensional data set by translating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the new position of the translated bounded area on the two-dimensional plane, and update the rendering, on the display, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the translated bounded area on the two-dimensional plane; a second scale control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch input sensor corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch input sensor, scale dimensions of the bounded area on the two-dimensional plane as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the scaled bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the scaled bounded area on the two dimensional plane, update the rendering, on the display of the three-dimensional view based on the three-dimensional data set by scaling, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the scaled dimensions of the scaled bounded area on the two-dimensional plane, and update the rendering, on the display, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the scaled bounded area on the two-dimensional plane; and a second rotation control configured to: detect engagement by one or more input mechanisms of one or more points on the multi-touch input sensor corresponding to the display of the visual indication of the bounded area on the two-dimensional plane, track movement of the one or more input mechanisms while the one or more input mechanisms remain engaged with the one or more points on the multi-touch input sensor, rotate the bounded area on the two-dimensional plane in two dimensions around a point within the bounded area as a function of the tracked movement of the one or more input mechanisms such that a new first subset of the two-dimensional data set corresponds to points that lie within the rotated bounded area on the two dimensional plane and a new second subset of the two-dimensional data set corresponds to points that lie outside of the rotated bounded area on the two dimensional plane, update the rendering, on the display of the three-dimensional view based on the three-dimensional data set by rotating, within the three-dimensional view based on the three-dimensional data set, the visual indication of the bounded area of the two-dimensional plane to reflect the rotation of the rotated bounded area on the two-dimensional plane, and update the rendering, on the display, of the two-dimensional view of the first subset of the two-dimensional data set to display a two-dimensional view of the new first subset of the two-dimensional data set corresponding to points that lie within the rotated bounded area on the two-dimensional plane. 